在莫比乌斯反演的题目中,往往要求出一些数论函数的前缀和,利用 杜教筛 可以快速求出这些前缀和。
杜教筛
求 $\displaystyle S(n)=\sum_{i=1}^n f(i)$
我们要想办法构造一个 $S(n)$ 关于 $S(\left \lfloor \frac{n}{i} \right \rfloor)$.
构造两个积性函数 $h, \ g$,使得 $h=f*$,
$\begin{aligned}
\sum _{i=1}^n h(i) &= \sum_{i=1}^n \sum _{d|n} g(d)f(\frac{n}{d}) \\
&= \sum_{d=1}^n g(d)\cdot \sum_{i=1}^{\frac{n}{d}} f(i) \\
&= \sum_{d=1}^n g(d)S(\left \lfloor \frac{n}{d} \right \rfloor)
\end{aligned}$$
设