狄利克雷前缀和及其拓展

给定 (n,{a_n}) ,以及 ({a_n},{b_n}) 之间的以下四种关系,求 ({b_n})

【狄利克雷前缀和】

(displaystyle b_n=sum_{dmid n}a_d)

for(int i=1;i<=CntPrime;i++)
      for(int j=1;j*Prime[i]<=N;j++)
            B[ j*Prime[i] ]+=B[j];

【狄利克雷后缀和】

(displaystyle b_n=sum_{nmid d}a_d)

for(int i=1;i<=CntPrime;i++)
      for(int j=N/Prime[i];j>=1;j--)
            B[j]+=B[ j*Prime[i] ];

【倒狄利克雷前缀和】

(displaystyle a_n=sum_{dmid n}b_d)

for(int i=CntPrime;i>=1;i--)
      for(int j=N/Prime[i];j>=1;j--)
            B[ j*Prime[i] ]-=B[j];

【倒狄利克雷后缀和】

(displaystyle a_n=sum_{nmid d}b_d)

for(int i=CntPrime;i>=1;i--)
      for(int j=1;j*Prime[i]<=N;j++)
            B[j]-=B[ j*Prime[i] ];
原文地址:https://www.cnblogs.com/JustinRochester/p/14311707.html