Min_25篩

有(沒)什麼用?

求解積性函數 \(F\) 的前綴和函數

\[\sum_{i=1}^{n}F(i)\]spa

作法

首先假設 \(F(i)=i^k\)
\(P_i\) 爲從小到大的第 \(j\) 個質數
\(g(x,j)\)class

\(g(x,j)=\sum_{i=1}^{x}[i\)爲質數或最小質因子\(> P_j]F(i)\)
\(g(x,0)\) 不包括 \(f(1)\) 的貢獻總結

求解 \(g\)

\(P_j^2 > x\),則不存在 \(x\) 之內的合數的最小質因子大於 \(P_j\)di

那麼 \(g(x,j)=g(x,j-1)\)display

不然,\(P_j^2 \le x\),考慮從 \(g(x,j-1)\) 推過來cas

顯然 \(g(x,j-1)\) 中多了最小質因子爲 \(P_j\) 的那些合數的貢獻,設爲 \(R\)math

設這些合數爲 \(tP_j\),貢獻即 \(t^kP_j^k\)枚舉

要知足這些合數的最小質因子爲 \(P_j\)\(t\) 要知足最小質因子 \(\ge P_j\)play

提出 \(P_j^k\) ,因此 \(R=(g(\frac{x}{P_j},j-1)-\)小於 \(P_j\) 的質數的貢獻\()P_j^k\)

也就是 \(R=P_j^k(g(\frac{x}{P_j},j-1)-g(P_{j-1}, j-1))\)

(由於 \(P_{j-1}\) 之內爲質數或最小質因子 \(> P_{j-1}\) 的只有質數)

總結一下就是

\[ g(x, j) = \begin{cases} g(x,j-1), P_j^2 > x\\ g(x,j-1)-P_j^k(g(\frac{x}{P_j},j-1)-g(P_{j-1}, j-1)), P_j^2 \le x\\ \end{cases}\\ \]

求解前綴和

\(h(x)=\sum_{i=2}^{x}[i\) 爲質數 \(]F(i)\)

假設 \(a_x\)\(P_{a_x} \le x\) 的最大的數

那麼 \(h(x) = g(x, a_{\sqrt x})\)

再設 \(S(n,j)=\sum_{i=1}^{n}[i\)的最小質因子\(\ge P_j]F(i)\)

\(S(n,0)\) 不包括 \(f(1)\) 的貢獻

分紅兩個部分計算

  1. \(i\) 爲質數,貢獻即爲 \(h(n)-h(P_{j-1})\)

  2. \(i\) 爲合數:

枚舉最小質因子 \(P_k\) 及其的指數 \(e\) (這裏的 \(k\)\(F(i)=i^k\) 不是一個)

貢獻爲

\[\sum_{k\ge j}\sum_{e}^{P_k^{e+1} \le n}(F(P_k^e)S(\frac{n}{p_k^e},k+1)+F(P_k^{e+1}))\]

首先積性函數的性質有前面的一部分

\[\sum_{k\ge j}\sum_{e=1}^{P_k^{e+1} \le n}F(P_k^e)S(\frac{n}{p_k^e},k+1)\]

而這樣就沒有算到 \(F(P_k^e)\) 的貢獻,加回來便可

答案就是 \(S(n,1)+F(1)\)

相關文章
相關標籤/搜索