[洛谷P4213]【模板】杜教筛(Sum)
题目大意: 给你$n$,求: $$ \sum\limits_{i=1}^n\varphi(i),\sum\limits_{i=1}^n\mu(i) $$ 最多$10$组数据,$n\leqslant2^{31}-1$ 题解: 杜教筛,用来求$\sum\limits_{i=1}^nf(i)$的,其中$f$是某个特殊函数。 若我们可以找到一个函数$g$,使得$g,f*g$两个函数的前缀和十分好算($g*f$表示$g$和$f$的狄利克雷卷积),就可在$O(n^{\frac 23})$的复杂度内求出我们要的东西。令$S(n)=\sum\limits_{i=1}^nf(i)$ $$ \begin{align*} \sum\limits_{i=1}^n(g*f)(i)&=\sum\limits_{i=1}^n\sum\limits_{d|i}g(d)f\left(\dfrac id\right)\\ &=\sum\limits_{d=1}^ng(d)\sum\limits_{i=1,d|i}^nf\left(\dfrac id\right)\\ &=\sum\limits_{d=1}g(d)S\left(\left\lfloor\dfrac nd\right\rfloor\right) \end{align*}\\ g(1)S(n)=\sum\limits_{i=1}^n(f*g)(i)-