杜教筛求积性函数的前缀和 O ( n 3 4 ) O(n^{\frac{3}{4}}) O(n43),预处理后的时间复杂度 O ( n 2 3 ) O(n^{\frac{2}{3}}) O(n32)

一般的推导过程

( f ∗ g ) ( n ) = g ( d ) f ( n d ) (f*g)(n)=g(d)f(\frac{n}{d}) (fg)(n)=g(d)f(dn)是两个数论函数的卷积
∑ i = 1 n ( f ∗ g ) ( i ) = ∑ i = 1 n ∑ d ∣ i g ( d ) f ( i d ) = ∑ d = 1 n ∑ d ∣ i g ( d ) f ( i d ) = ∑ d = 1 n g ( d ) ∑ d ∣ i f ( i d ) = ∑ d = 1 n g ( d ) ∑ i = 1 ⌊ n d ⌋ f ( i ) \sum_{i=1}^{n}(f*g)(i)=\sum_{i=1}^{n}\sum_{d|i}g(d)f(\frac{i}{d}) \\ =\sum_{d=1}^{n}\sum_{d|i}g(d)f(\frac{i}{d}) \\ =\sum_{d=1}^{n}g(d)\sum_{d|i}f(\frac{i}{d}) \\ =\sum_{d=1}^{n}g(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}f(i) i=1n(fg)(i)=i=1ndig(d)f(di)=d=1ndig(d)f(di)=d=1ng(d)dif(di)=d=1ng(d)i=1dnf(i)
S ( n ) = ∑ i = 1 n f ( i ) S(n)=\sum_{i=1}^{n}f(i) S(n)=i=1nf(i)
∑ d = 1 n g ( d ) ∑ i = 1 ⌊ n d ⌋ f ( i ) = ∑ d = 1 n g ( d ) S ( ⌊ n d ⌋ ) \sum_{d=1}^{n}g(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}f(i) \\ =\sum_{d=1}^{n}g(d)S(\lfloor\frac{n}{d}\rfloor) d=1ng(d)i=1dnf(i)=d=1ng(d)S(dn)
由数论函数的性质可知, g ( 1 ) = 1 g(1)=1 g(1)=1,那么
∑ i = 1 n ( f ∗ g ) ( i ) = ∑ d = 1 n g ( d ) S ( ⌊ n d ⌋ ) = ∑ d = 2 n g ( d ) S ( ⌊ n d ⌋ ) + g ( 1 ) ∗ S ( n ) = ∑ d = 2 n g ( d ) S ( ⌊ n d ⌋ ) + S ( n ) \sum_{i=1}^{n}(f*g)(i)=\sum_{d=1}^{n}g(d)S(\lfloor\frac{n}{d}\rfloor) \\ =\sum_{d=2}^ng(d)S(\lfloor\frac{n}{d}\rfloor)+g(1)*S(n) \\ =\sum_{d=2}^ng(d)S(\lfloor\frac{n}{d}\rfloor)+S(n) i=1n(fg)(i)=d=1ng(d)S(dn)=d=2ng(d)S(dn)+g(1)S(n)=d=2ng(d)S(dn)+S(n)
那么
S ( n ) = ∑ i = 1 n ( f ∗ g ) ( i ) − ∑ d = 2 n g ( d ) S ( ⌊ n d ⌋ ) S(n)=\sum_{i=1}^{n}(f*g)(i)-\sum_{d=2}^ng(d)S(\lfloor\frac{n}{d}\rfloor) S(n)=i=1n(fg)(i)d=2ng(d)S(dn)

常见的卷积公式

∑ d ∣ n d = 1 ∗ i d \sum_{d|n}d=1*id dnd=1id
1 ∗ μ = e 1*\mu=e 1μ=e
φ ∗ 1 = i d \varphi*1=id φ1=id
φ = i d ∗ μ \varphi=id*\mu φ=idμ

一些式子的总结

f ( i ) = i φ ( i ) f(i)=i\varphi(i) f(i)=iφ(i)
( f ∗ i d ) ( n ) = ∑ d ∣ n d φ ( d ) n d = n ∑ d ∣ n φ ( d ) = n 2 (f*id)(n)=\sum_{d|n}d\varphi(d)\frac{n}{d}=n\sum_{d|n}\varphi(d)=n^2 (fid)(n)=dndφ(d)dn=ndnφ(d)=n2

f ( i ) = i μ ( i ) f(i)=i\mu(i) f(i)=iμ(i)
( f ∗ i d ) ( n ) = ∑ d ∣ n d μ ( d ) n d = n ∑ d ∣ n μ ( d ) = n [ n = 1 ] (f*id)(n)=\sum_{d|n}d\mu(d)\frac{n}{d}=n\sum_{d|n}\mu(d)=n[n=1] (fid)(n)=dndμ(d)dn=ndnμ(d)=n[n=1]
S ( n ) = ∑ i = 1 n μ ( i ) = ∑ i = 1 n e ( i ) − ∑ d = 2 n S ( ⌊ n d ⌋ ) S ( n ) = ∑ i = 1 n i μ ( i ) = ∑ i = 1 n n [ n = 1 ] − ∑ d = 2 n d S ( ⌊ n d ⌋ ) S(n)=\sum_{i=1}^{n}\mu(i)=\sum_{i=1}^{^n}e(i)-\sum_{d=2}^nS(\lfloor\frac{n}{d}\rfloor) \\S(n)=\sum_{i=1}^ni\mu(i)=\sum_{i=1}^nn[n=1]-\sum_{d=2}^ndS(\lfloor\frac{n}{d}\rfloor) S(n)=i=1nμ(i)=i=1ne(i)d=2nS(dn)S(n)=i=1niμ(i)=i=1nn[n=1]d=2ndS(dn)
S ( n ) = ∑ i = 1 n φ ( i ) = ∑ i = 1 n i d − ∑ d = 2 n S ( ⌊ n d ⌋ ) S ( n ) = ∑ i = 1 n i φ ( i ) = ∑ i = 1 n ( i d ) 2 − ∑ d = 2 n d S ( ⌊ n d ⌋ ) . . . . S ( n ) = ∑ i = 1 n i n φ ( i ) = ∑ i = 1 n ( i d ) n + 1 − ∑ d = 2 n d n S ( ⌊ n d ⌋ ) S(n)=\sum_{i=1}^n\varphi(i)=\sum_{i=1}^nid-\sum_{d=2}^nS(\lfloor\frac{n}{d}\rfloor) \\ S(n)=\sum_{i=1}^ni\varphi(i)=\sum_{i=1}^{n}(id)^2-\sum_{d=2}^ndS(\lfloor\frac{n}{d}\rfloor) \\.... \\ S(n)=\sum_{i=1}^ni^n\varphi(i)=\sum_{i=1}^n(id)^{n+1}-\sum_{d=2}^nd^nS(\lfloor\frac{n}{d}\rfloor) S(n)=i=1nφ(i)=i=1nidd=2nS(dn)S(n)=i=1niφ(i)=i=1n(id)2d=2ndS(dn)....S(n)=i=1ninφ(i)=i=1n(id)n+1d=2ndnS(dn)