杜教筛
求一个积性函数 \(f(x)\) 的前缀和 \(S(x) = \sum_{i = 1}^x f(x)\),可以构造另外两个积性函数 \(g, h\) 满足 \(f * g = h\).
于是有
\[\begin{aligned}
\sum_{i = 1}^n h(i) = & \sum_{i=1}^n \sum_{d | i} g(d) f(\frac{i}{d}) \\
= & \sum_{d=1}^n g(d) \sum_{i = 1}^{\left\lfloor\frac{n}{d}\right\rfloor} f(i).
\end{aligned}
\]
移项可以得到:
\[\begin{aligned}
g(1)S(n) = & \sum_{i=1}^n h(i) - \sum_{d = 2}^n g(d) \sum_{i = 1}^{\left\lfloor\frac{n}{d}\right\rfloor} f(i) \\
= & \sum_{i=1}^n h(i) - \sum_{d = 2}^n g(d) S\left(\left\lfloor\frac{n}{d}\right\rfloor\right).
\end{aligned}
\]
望穿寂夜晨曦至,雄鹰展翅图九天。

浙公网安备 33010602011771号