杜教筛

对于一个数论函数 \(f\) 我们希望求其前缀和,
这时可以引出另一个数论函数 \(g\)

则我们可以得到: \(\sum_{i=1}^{n}\sum_{d|i}g(d)f(\left \lfloor \frac{i}{d} \right \rfloor)=\sum_{i=1}^{n}g(i)S(\left \lfloor \frac{n}{i} \right \rfloor)\)

把第一个式子卷一下: \(\sum_{i=1}^{n}(f*g)(i)=\sum_{i=1}^{n}g(i)S(\left \lfloor \frac{n}{i} \right \rfloor)\)

那对于 \(S(n)\) 我们显然有 \(g(1)S(n)=\sum_{i=1}^{n}(f*g)(i)-\sum_{i=2}^{n}g(i)S(\left \lfloor \frac{n}{i} \right \rfloor)\)

则我们可以得到杜教筛的最终式子:

\(S(n)=\frac{\sum_{i=1}^{n}(f*g)(i)-\sum_{i=2}^{n}g(i)S(\left \lfloor \frac{n}{i} \right \rfloor)}{g(1)}\)

一. 莫比乌斯函数前缀和

因为我们有 \(\mu*I=\epsilon\), 那么令 \(g\)\(I\),直接套入公式就好了。

二. 欧拉函数前缀和

引入公式: \(\varphi*I=id\)

这里给出两种证明方式:


1.

\(f=\varphi*I=\sum_{d|n}\varphi(d)\)

因为积性函数的卷积为积性函数[证明],所以 \(f\) 也为积性函数。

\(n=\prod_{i=1}^{k}p_{i}^{a_{i}}\)

\(f(n)=\prod_{i=1}^{k}f(p_{i}^{a_{i}})\)

\(f(p^{k})=\sum_{d|p^{a}}\varphi(d)=\varphi(1)+\sum_{i=1}^{k}\varphi(p^{i})=\varphi(1)+\sum_{i=1}^{k}(p^{i}-p^{i-1})=p^{k}\)

则: \(f(n)=\prod_{i=1}^{k}f(p_{i}^{a_{i}})=\prod_{i=1}^{k}p^{a_{i}}=n=id(n)\)

2.

构造式子: \(\frac{1}{n}+\frac{2}{n}+\frac{3}{n}+...+\frac{n-1}{n}+\frac{n}{n}\)
对于每个分数,我们把他化简成最简分数形式
首先在这些分数中,分子是一定小于分母的,那如果 \(j\) 可以作为 \(i\) 的分子,那么 \(j\) 一定与 \(i\) 互质
则对于每个分母 \(i\) 存在的次数为 \(\varphi(i)\) 次,
又因为每个化简后的分母一定为 \(n\) 的因子,且所有分母出现的总次数为 \(n\)
所以: \(\sum_{d|n}\varphi(d)=n=id(n)\)


剩下的带入公式就好了

参考文献:
杜教筛-OI Wiki