有(没)什么用?
求解积性函数 F F F 的前缀和
∑ i = 1 n F ( i ) \sum_{i=1}^{n}F(i) i=1∑nF(i)
做法
首先假设
F
(
i
)
=
i
k
F(i)=i^k
F(i)=ik
设
P
i
P_i
Pi 为从小到大的第
j
j
j 个质数
设
g
(
x
,
j
)
g(x,j)
g(x,j)
g
(
x
,
j
)
=
∑
i
=
1
x
[
i
g(x,j)=\sum_{i=1}^{x}[i
g(x,j)=∑i=1x[i为质数或最小质因子
>
P
j
]
F
(
i
)
> P_j]F(i)
>Pj]F(i)
g
(
x
,
0
)
g(x,0)
g(x,0) 不包括
f
(
1
)
f(1)
f(1) 的贡献
求解 g g g
若 P j 2 > x P_j^2 > x Pj2>x,则不存在 x x x 以内的合数的最小质因子大于 P j P_j Pj
那么 g ( x , j ) = g ( x , j − 1 ) g(x,j)=g(x,j-1) g(x,j)=g(x,j−1)
否则, P j 2 ≤ x P_j^2 \le x Pj2≤x,考虑从 g ( x , j − 1 ) g(x,j-1) g(x,j−1) 推过来
显然 g ( x , j − 1 ) g(x,j-1) g(x,j−1) 中多了最小质因子为 P j P_j Pj 的那些合数的贡献,设为 R R R
设这些合数为 t P j tP_j tPj,贡献即 t k P j k t^kP_j^k tkPjk
要满足这些合数的最小质因子为 P j P_j Pj, t t t 要满足最小质因子 ≥ P j \ge P_j ≥Pj
提出 P j k P_j^k Pjk ,所以 R = ( g ( x P j , j − 1 ) − R=(g(\frac{x}{P_j},j-1)- R=(g(Pjx,j−1)−小于 P j P_j Pj 的质数的贡献 ) P j k )P_j^k )Pjk
也就是 R = P j k ( g ( x P j , j − 1 ) − g ( P j − 1 , j − 1 ) ) R=P_j^k(g(\frac{x}{P_j},j-1)-g(P_{j-1}, j-1)) R=Pjk(g(Pjx,j−1)−g(Pj−1,j−1))
(因为 P j − 1 P_{j-1} Pj−1 以内为质数或最小质因子 > P j − 1 > P_{j-1} >Pj−1 的只有质数)
总结一下就是
g ( x , j ) = { g ( x , j − 1 ) , P j 2 > x g ( x , j − 1 ) − P j k ( g ( x P j , j − 1 ) − g ( P j − 1 , j − 1 ) ) , P j 2 ≤ x 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}\\ g(x,j)={g(x,j−1),Pj2>xg(x,j−1)−Pjk(g(Pjx,j−1)−g(Pj−1,j−1)),Pj2≤x
求解前缀和
设 h ( x ) = ∑ i = 2 x [ i h(x)=\sum_{i=2}^{x}[i h(x)=∑i=2x[i 为质数 ] F ( i ) ]F(i) ]F(i)
假设 a x a_x ax 为 P a x ≤ x P_{a_x} \le x Pax≤x 的最大的数
那么 h ( x ) = g ( x , a x ) h(x) = g(x, a_{\sqrt x}) h(x)=g(x,ax)
再设 S ( n , j ) = ∑ i = 1 n [ i S(n,j)=\sum_{i=1}^{n}[i S(n,j)=∑i=1n[i的最小质因子 ≥ P j ] F ( i ) \ge P_j]F(i) ≥Pj]F(i)
S ( n , 0 ) S(n,0) S(n,0) 不包括 f ( 1 ) f(1) f(1) 的贡献
分成两个部分计算
-
i i i 为质数,贡献即为 h ( n ) − h ( P j − 1 ) h(n)-h(P_{j-1}) h(n)−h(Pj−1)
-
i i i 为合数:
枚举最小质因子 P k P_k Pk 及其的指数 e e e (这里的 k k k 和 F ( i ) = i k F(i)=i^k F(i)=ik 不是一个)
贡献为
∑ k ≥ j ∑ e P k e + 1 ≤ n ( F ( P k e ) S ( n p k e , k + 1 ) + F ( P k e + 1 ) ) \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})) k≥j∑e∑Pke+1≤n(F(Pke)S(pken,k+1)+F(Pke+1))
首先积性函数的性质有前面的一部分
∑ k ≥ j ∑ e = 1 P k e + 1 ≤ n F ( P k e ) S ( n p k e , k + 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) k≥j∑e=1∑Pke+1≤nF(Pke)S(pken,k+1)
而这样就没有算到 F ( P k e ) F(P_k^e) F(Pke) 的贡献,加回来即可
答案就是 S ( n , 1 ) + F ( 1 ) S(n,1)+F(1) S(n,1)+F(1)