定义:
定义f,g两个积性函数的狄利克雷卷积运算(*)为:
(f∗g)(n)=∑d|nf(d)∗g(nd)
性质:
狄利克雷卷积满足:
- 交换律:f∗g=g∗f
- 结合律:(f∗g)∗h=f∗(g∗h)
- 分配律:f∗(g+h)=f∗h+g∗h
- 单位元:f∗e=f
常见函数卷积:

μ∗1=ϵ (莫比乌斯函数与1互为逆元)
ϕ∗1=Id (欧拉函数与n互为逆元)
ϕ=Id∗μ (莫比乌斯与欧拉的关系)
d=1∗1
1=μ∗d
杜教筛:
由于涉及内容太多,分成两篇博客进行讲述,建议先看前一篇,就当你已经看完前一篇了,我这里会讲的快一点
求∑ni=1f(i),设为Ans(n)
找一个积性函数g(x),那么
∑i=1n(f∗g)(i)=∑i=1n∑d|ig(d)∗f(nd)
前一篇中有理论证明,这里对出数学证明,显然:
∑i=1n∑d|i=∑d=1n∑d|ii<=n
那么:
∑i=1n(f∗g)(i)=∑d=1n∑d|ii<=ng(d)∗f(nd)=∑d=1ng(d)∑j=1[nd]f(j)
接下来和前一篇一样:
∵∑d=1ng(d)∑j=1[nd]f(j)=∑d=2ng(d)∑j=1[nd]f(j)+g(1)∑j=1nf(j)∴g(1)∗Ans(n)=∑i=1n(f∗g)(i)−∑d=2ng(d)Ans(n/d)
结论:Ans(n)=∑ni=1(f∗g)(i)−∑nd=2g(d)Ans(n/d)g(1)
按照上一篇的说法,递归+整除分块+线性筛 收尾。
例题:
求∑ni=1ϕ(i)∗i
显然,如果卷一个函数1的话,变成∑ni=1∑d|iϕ(d)∗d,好像并没有什么简单的化简,而卷一个函数Id的话,就变成了
∑i=1n∑d|iϕ(d)∗d∗id→∑i=1ni∑d|iϕ(d)
而
∑d|iϕ(d)=i,所以得到:
令:f(i)=ϕ(i)∗i,g(i)=i,Ans(n)=∑i=1nϕ(i)∗i得:Ans(n)=∑ni=1(f∗g)(i)−∑nd=2g(d)Ans(n/d)g(1)=∑i=1ni2−∑d=2nd∗Ans(n/d)
这题就变得异常简单了
总结:
当求积性函数前缀和不好求的时候,用狄利克雷卷上一个积性函数,使卷完后的式子的前缀和变得简单,卷完后的前缀和算出来基本上题目就完成了
- 如果出现ϕ(x),那么就凑∑d|nϕ(d)=n
- 如果是u(x),就凑∑n≠1d|nu(d)=0