杜教筛
对于一个数论函数 \(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}\)
对于每个分数,我们把他化简成最简分数形式
则对于每个分母 \(i\) 存在的次数为 \(\varphi(i)\) 次,
首先在这些分数中,分子是一定小于分母的,那如果 \(j\) 可以作为 \(i\) 的分子,那么 \(i\) 一定与 \(j\) 互质
剩下的带入公式就好了
参考文献:
杜教筛-OI Wiki [https://oi-wiki.org/math/number-theory/du/]