积性函数前缀和-个人总结

积性函数前缀和-个人总结

【写在前面】

用了一个多星期将这部分大致弄懂了,东西太多,有很多技巧,自己重新写了一下,记录自己的理解。内容与原文基本一致,在其基础上加上了一些我感觉比较重要的但他没有详细说明的东西。以下都是我逐字打出来的。如果有什么错误,请指出。

前置技能里面的东西需要充分理解和记忆,在后面推导过程中会多次用到前置技能里面的东西。

转载出处:

author: skywalkert
original article: http://blog.csdn.net/skywalkert/article/details/50500009

【常用技巧】

∑ k = 1 n ∑ d ∣ k d ⋅ k = ∑ k = 1 n ∑ d = 1 n k d ⋅ k ⋅ d = ∑ d = 1 n ∑ k ∣ d d ⋅ d k = ∑ d = 1 n ∑ k = 1 n d d ⋅ k ⋅ d = ∑ d = 1 n ∑ d ∣ k d ⋅ k = ∑ k = 1 n ∑ k ∣ d d ⋅ d k 上 式 为 约 数 , 倍 数 之 间 重 要 的 变 换 , 需 要 充 分 理 解 并 熟 练 运 用 。 ∣ 1 、 遇 到 [ g c d ( i , j ) = 1 ] , 考 虑 将 其 转 换 为 ∑ k ∣ g c d ( i , j ) μ ( k ) 2 、 对 于 ∑ i = 1 n ∑ j = 1 n [ g c d ( i , j ) = 1 ] = 2 ∑ i = 1 n ∑ j = 1 i [ g c d ( i , j ) = 1 ] − ∑ i = 1 n [ g c d ( i , i ) = 1 ] = ( 2 ∑ i = 1 n φ ( i ) ) − 1 3 、 ∑ i = 1 n i ∑ j = 1 n [ g c d ( i , j ) = 1 ] ⋅ j = 2 ∑ i = 1 n i ∑ j = 1 i [ g c d ( i , j ) = 1 ] ⋅ j − ∑ i = 1 n [ g c d ( i , i ) = 1 ] ⋅ i = ( 2 ∑ i = 1 n i i ⋅ φ ( i ) + [ i = 1 ] 2 ) − 1 = ( ∑ i = 1 n i 2 ⋅ φ ( i ) + [ i = 1 ] ) − 1 4 、 记 w ( n ) 为 n 的 质 因 子 的 个 数 , 则 2 w ( n ) 为 n 的 约 数 中 无 平 方 因 子 的 个 数 , 则 f ( n ) = 2 w ( n ) = ∑ d ∣ n μ 2 ( d ) 则 σ 0 ( n 2 ) = ∑ d ∣ n f ( d ) = ∑ d ∣ n ∑ k ∣ d μ 2 ( k ) , 附 个 表 ∑ i = 1 10 σ ( i 2 ) 5 、 n 以 内 非 完 全 平 方 数 的 个 数 g ( n ) = ∑ i = 1 n μ 2 ( i ) = ∑ i = 1 n μ ( i ) ⋅ ⌊ n i 2 ⌋ 6 、 ∑ d ∣ n ∑ i n d = ∑ d ∣ n ∑ i d , 且 d ∣ n 可 以 用 埃 筛 预 处 理 , i 为 d , j 为 n 。 7 、 σ 0 ( i ⋅ j ) = ∑ d ∣ i ⋅ j = ∑ x ∣ i ∑ y ∣ j [ g c d ( i , j ) = 1 ] , σ 1 ( i ⋅ j ) = ∑ d ∣ i ⋅ j d = ∑ x ∣ i ∑ y ∣ j y ⋅ n x [ g c d ( i , j ) = 1 ] \sum_{k=1}^n\sum_{d|k}d\cdot k=\sum_{k=1}^n\sum_{d=1}^{\frac nk}d\cdot k\cdot d=\sum_{d=1}^n\sum_{k|d}d\cdot \frac dk=\sum_{d=1}^n\sum_{k=1}^{\frac nd}d\cdot k\cdot d=\sum_{d=1}^n\sum_{d|k}d\cdot k=\sum_{k=1}^n\sum_{k|d} d\cdot\frac dk\\ 上式为约数,倍数之间重要的变换,需要充分理解并熟练运用。\\ |\\ \\1、遇到[gcd(i,j)=1],考虑将其转换为\sum_{k|gcd(i,j)}\mu(k)\\ 2、对于\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=1]=2\sum_{i=1}^n\sum_{j=1}^i[gcd(i,j)=1]-\sum_{i=1}^n[gcd(i,i)=1]=\big(2\sum_{i=1}^n\varphi(i)\big)-1\\ 3、\sum_{i=1}^{n}i\sum_{j=1}^{n}[gcd(i,j)=1]\cdot j=2\sum_{i=1}^{n}i\sum_{j=1}^i[gcd(i,j)=1]\cdot j-\sum_{i=1}^n[gcd(i,i)=1]\cdot i\\ =\bigg(2\sum_{i=1}^ni\frac{i\cdot\varphi(i)+[i=1]}{2}\bigg)-1=\bigg(\sum_{i=1}^ni^2\cdot\varphi(i)+[i=1]\bigg)-1\\ 4、记w(n)为n的质因子的个数,则2^{w(n)}为n的约数中无平方因子的个数,则f(n)=2^{w(n)}=\sum_{d|n}\mu^2(d)\\ 则\sigma_0(n^2)=\sum_{d|n}f(d)=\sum_{d|n}\sum_{k|d}\mu^2(k)^,附个表\sum_{i=1}^{10}\sigma(i^2)\\ 5、n以内非完全平方数的个数g(n)=\sum_{i=1}^n\mu^2(i)=\sum_{i=1}^{\sqrt{n}}\mu(i)\cdot\lfloor\frac n{i^2}\rfloor\\ 6、\sum_{d|n}\sum_i^{\frac{n}{d}}=\sum_{d|n}\sum_i^{d},且d|n可以用埃筛预处理,i为d,j为n。\\ 7、\sigma_0(i\cdot j)=\sum_{d|i\cdot j}=\sum_{x|i}\sum_{y|j}[gcd(i,j)=1],\sigma_1(i\cdot j)=\sum_{d|i\cdot j}d=\sum_{x|i}\sum_{y|j}\frac{y\cdot n}{x}[gcd(i,j)=1] k=1ndkdk=k=1nd=1kndkd=d=1nkddkd=d=1nk=1dndkd=d=1ndkdk=k=1nkddkd1[gcd(i,j)=1],kgcd(i,j)μ(k)2i=1nj=1n[gcd(i,j)=1]=2i=1nj=1i[gcd(i,j)=1]i=1n[gcd(i,i)=1]=(2i=1nφ(i))13i=1nij=1n[gcd(i,j)=1]j=2i=1nij=1i[gcd(i,j)=1]ji=1n[gcd(i,i)=1]i=(2i=1ni2iφ(i)+[i=1])1=(i=1ni2φ(i)+[i=1])14w(n)n2w(n)nf(n)=2w(n)=dnμ2(d)σ0(n2)=dnf(d)=dnkdμ2(k)i=110σ(i2)5ng(n)=i=1nμ2(i)=i=1n μ(i)i2n6dnidn=dniddnidjn7σ0(ij)=dij=xiyj[gcd(i,j)=1]σ1(ij)=dijd=xiyjxyn[gcd(i,j)=1]

证明7:
令 x = i ⋅ j , 则 由 唯 一 分 解 定 理 得 : x = p 1 e 1 p 2 e 2 … p n e k , 则 x 的 约 数 个 数 为 ( e 1 + 1 ) ⋅ ( e 2 + 1 ) … ( e k + 1 ) 考 虑 任 意 一 个 质 数 p 对 答 案 的 贡 献 。 假 设 质 数 p 在 i 的 质 因 数 中 出 现 了 a 次 在 j 的 质 因 数 中 出 现 了 b 次 , 那 么 p 对 答 案 的 贡 献 就 为 a + b + 1 。 而 a + b + 1 = ∑ x = 0 a ∑ y = 0 b [ g c d ( p x , p y ) = 1 ] , 等 效 与 以 下 矩 阵 : a = 2 , b = 3 ( 1 1 1 1 1 p p p 1 p p 2 p 2 ) 相 当 于 对 于 素 数 p 来 说 , 不 同 时 出 现 于 两 个 数 的 质 因 数 中 。 由 唯 一 分 解 定 理 又 得 : i = p 1 e 1 p 2 e 2 p 3 e 3 . . . p k e k , j = p 1 q 1 p 2 q 2 p 3 q 3 . . . p k q k , 根 据 乘 法 原 理 可 得 : σ 0 ( i ⋅ j ) = ∑ x 1 = 0 e 1 ∑ y 1 = 0 q 1 [ ( p 1 x 1 , p 1 y 1 ) = 1 ] ∑ x 2 = 0 e 2 ∑ y 2 = 0 q 2 [ ( p 2 x 2 , p 2 y 2 ) = 1 ] . . . ∑ x n = 0 e n ∑ y n = 0 q n [ ( p n x n , p n y n ) = 1 ] 将 其 合 并 得 : σ 0 ( i ⋅ j ) = ∑ x ∣ i ∑ y ∣ j [ g c d ( x , y ) = 1 ] 对 于 任 意 一 个 素 数 p 来 说 , 它 们 不 同 时 出 现 于 x , y 中 , 就 相 当 于 g c d ( x , y ) = 1 。 令x=i\cdot j,则由唯一分解定理得:x=p_1^{e_1}p_2^{e_2}\dots p_n^{e_k},则x的约数个数为(e_1+1)\cdot(e_2+1)\dots(e_k+1)\\ 考虑任意一个质数p对答案的贡献。假设质数p在i的质因数中出现了a次\\在j的质因数中出现了b次, 那么p对答案\\的贡献就为a+b+1。而a+b+1=\sum_{x=0}^a\sum_{y=0}^b[gcd(p^x,p^y)=1],等效与以下矩阵:a=2,b=3\\ \left(\begin{matrix} 1&1&1&1\\ 1&p&p&p\\ 1&p&p^2&p^2 \end{matrix}\right)\\ 相当于对于素数p来说,不同时出现于两个数的质因数中。 \\ 由唯一分解定理又得:i=p_1^{e_1}p_2^{e_2}p_3^{e_3}...p_k^{e_k},j=p_1^{q_1}p_2^{q_2}p_3^{q_3}...p_k^{q_k},根据乘法原理可得:\\ \sigma_0(i\cdot j)=\sum_{x_1=0}^{e_1}\sum_{y_1=0}^{q_1}[(p_1^{x_1},p_1^{y_1})=1]\sum_{x_2=0}^{e_2}\sum_{y_2=0}^{q_2}[(p_2^{x_2},p_2^{y_2})=1]...\sum_{x_n=0}^{e_n}\sum_{y_n=0}^{q_n}[(p_n^{x_n},p_n^{y_n})=1]\\将其合并得:\sigma_0(i\cdot j)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]\\ 对于任意一个素数p来说,它们不同时出现于x,y中,就相当于gcd(x,y)=1。 x=ij,x=p1e1p2e2pnekx(e1+1)(e2+1)(ek+1)ppiajbpa+b+1a+b+1=x=0ay=0b[gcd(px,py)=1]a=2,b=31111pp1pp21pp2pi=p1e1p2e2p3e3...pkekj=p1q1p2q2p3q3...pkqkσ0(ij)=x1=0e1y1=0q1[(p1x1,p1y1)=1]x2=0e2y2=0q2[(p2x2,p2y2)=1]...xn=0enyn=0qn[(pnxn,pnyn)=1]σ0(ij)=xiyj[gcd(x,y)=1]px,ygcd(x,y)=1

[摘自]: < https://blog.csdn.net/ab_ever/article/details/76737617 >

σ 1 ( n ⋅ m ) = ∑ a ∣ n ⋅ m a = ∑ k = 1 r ∑ c ∣ n m P k x k + y k ∑ a ∣ P k x k + y k a c = ∑ a 1 ∣ P 1 x 1 + y 1 ∑ a 2 ∣ P 2 x 2 + y 2 . . . ∑ a r ∣ P r x r + y r ( ∏ i = 1 r a i ) 对 于 某 个 素 数 p k : ∑ a ∣ P k x k + y k a = ∑ a ∣ P k x k ∑ b ∣ P k y k [ g c d ( a , b ) = 1 ] P k x k b a 所 以 : σ 1 ( n ⋅ m ) = ∑ a ∣ n ∑ b ∣ m n ⋅ b a [ g c d ( a , b ) = 1 ] \sigma_1(n\cdot m)=\sum_{a|n\cdot m}a\\=\sum_{k=1}^r\sum_{c\big|\frac{nm}{P_k^{x_k+y_k}}}\sum_{a|P_k^{x_k+y_k}}ac\\=\sum_{a_1\big|P_1^{x_1+y_1}}\sum_{a_2\big|P_2^{x_2+y_2}}...\sum_{a_r\big|P_r^{x_r+y_r}}\Big(\prod_{i=1}^ra_i\Big) \\对于某个素数p_k: \sum_{a\big | P_k^{x_k+y_k}}a=\sum_{a|P_{k}^{x_k}}\sum_{b|P_{k}^{y_k}}[ gcd(a,b)=1]\frac{P_{k}^{x_k}b}{a}\\所以:\sigma_1(n\cdot m)=\sum_{a|n}\sum_{b|m}\frac{n\cdot b}{a}[gcd(a,b)=1] σ1(nm)=anma=k=1rcPkxk+yknmaPkxk+ykac=a1P1x1+y1a2P2x2+y2...arPrxr+yr(i=1rai)pk:aPkxk+yka=aPkxkbPkyk[gcd(a,b)=1]aPkxkbσ1(nm)=anbmanb[gcd(a,b)=1]

2、
10
1 1 1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0 1 0
1 1 0 1 1 0 1 1 0 1
1 0 1 0 1 0 1 0 1 0
1 1 1 1 0 1 1 1 1 0
1 0 0 0 1 0 1 0 0 0
1 1 1 1 1 1 0 1 1 1
1 0 1 0 1 0 1 0 1 0
1 1 0 1 1 0 1 1 0 1
1 0 1 0 0 0 1 0 1 0

4、
1											1
1 2 4										1 1 2
1 3 9 										1 1 3
1 2 4 8 16									1 1 2 1 2
1 5 25										1 1 5
1 2 3 4 6 9 12 18 36						1 1 2 1 3 1 2 3 6
1 7 49										1 1 7
1 2 4 8 16 32 64							1 1 2 1 2 1 2
1 3 9 27 81									1 1 3 1 3
1 2 4 5 10 20 25 50 100						1 1 2 1 5 1 2 5 10	
48											48

【前置技能】

【积性函数的定义】

  1. f ( n ) f(n) f(n)的定义域为正整数域,值域为复数,即 f : Z + → C f:Z^+→C f:Z+C,则称 f ( n ) f(n) f(n)数论函数
  2. f ( n ) f(n) f(n)为数论函数,且 f ( 1 ) = 1 f(1)=1 f(1)=1,对于互质的正整数 p , q p,q p,q f ( p ⋅ q ) = f ( p ) ⋅ f ( q ) f(p⋅q)=f(p)⋅f(q) f(pq)=f(p)f(q),则称其为积性函数
  3. f ( n ) f(n) f(n)为积性函数,且对于任意正整数 p , q p,q p,q都有 f ( p ⋅ q ) = f ( p ) ⋅ f ( q ) f(p⋅q)=f(p)⋅f(q) f(pq)=f(p)f(q),则称其为完全积性函数

【积性函数的性质与例子】

  1. f ( n ) f(n) f(n)为积性函数,则对于正整数 n = ∏ i = 1 t p i e i n=\prod_{i=1}^tp_i^{e_i} n=i=1tpiei f ( n ) = ∏ i = 1 t f ( p i e i ) f(n)=\prod_{i=1}^tf(p_i^{e_i}) f(n)=i=1tf(piei);若f(n)为完全积性函数,则对于正整数 n = ∏ i = 1 t p i e i n=\prod_{i=1}^tp_i^{e_i} n=i=1tpiei f ( n ) = ∏ i = 1 t f ( p i ) e i f(n)=\prod_{i=1}^tf(p_i)^{e_i} f(n)=i=1tf(pi)ei
  2. 常见的积性函数有:
    1. 除数函数 σ k ( n ) = ∑ d ∣ n d k \sigma_k(n)=\sum_{d|n}d^k σk(n)=dndk,表示n的约数的k次幂和,注意 σ k ( n ) \sigma_k(n) σk(n) σ k ( n ) \sigma^k(n) σk(n)是不同的。
      • 由唯一分解定理得: n = ∏ i = 1 t p i e i n=\prod_{i=1}^tp_i^{e_i} n=i=1tpiei。则 σ k ( n ) = ∏ i = 1 t σ k ( p i e i ) = ∏ i = 1 t ∑ d ∣ p i e i d k = ∏ i = 1 t ( 1 + p k + p 2 k + p 3 k + ⋯ + p e i k ) \sigma_k(n)=\prod_{i=1}^t\sigma_k(p_i^{e_i})=\prod_{i=1}^t \sum_{d|p_i^{e_i}}d^k=\prod_{i=1}^t(1+p^k+p^{2k}+p^{3k}+\dots+p^{e_ik}) σk(n)=i=1tσk(piei)=i=1tdpieidk=i=1t(1+pk+p2k+p3k++peik)
    2. 约数个数函数 τ ( n ) = σ 0 ( n ) = ∑ d ∣ n 1 τ(n)=σ_0(n)=∑_{d|n}1 τ(n)=σ0(n)=dn1,表示 n n n的约数个数,一般也写为 d ( n ) d(n) d(n)
      • σ 0 ( n ) = ∏ i = 1 t σ 0 ( p i e i ) = ∏ i = 1 t ( 1 + p 0 + p 0 + p 0 + ⋯ + p 0 ) = ∏ i = 1 t e i + 1 \sigma_0(n)=\prod_{i=1}^t\sigma_0(p_i^{e_i})=\prod_{i=1}^t(1+p^0+p^0+p^0+\dots+p^{0})=\prod_{i=1}^te_i+1 σ0(n)=i=1tσ0(piei)=i=1t(1+p0+p0+p0++p0)=i=1tei+1
    3. 约数和函数 σ ( n ) = σ 1 ( n ) = ∑ d ∣ n d σ(n)=σ_1(n)=∑_{d|n}d σ(n)=σ1(n)=dnd,表示 n n n的约数之和。
      • σ 1 ( n ) = ∏ i = 1 t ( 1 + p 1 + p 2 + p 3 + ⋯ + p e i ) \sigma_1(n)=\prod_{i=1}^t(1+p^1+p^2+p^3+\dots+p^{e_i}) σ1(n)=i=1t(1+p1+p2+p3++pei) p s : ps: ps:括号内的可以用等比数列求和公式简化。
    4. 欧拉函数 φ ( n ) = ∑ i = 1 n [ ( n , i ) = 1 ] ⋅ 1 \varphi(n)=\sum_{i=1}^n[(n,i)=1]\cdot1 φ(n)=i=1n[(n,i)=1]1,表示不大于 n n n且与 n n n互质的正整数的个数,另外 ∑ i = 1 n [ ( n , i ) = 1 ] ⋅ i = n ⋅ φ ( n ) + [ n = 1 ] 2 \sum_{i=1}^n[(n,i)=1]\cdot i=\frac{n\cdot \varphi(n)+[n=1]}2 i=1n[(n,i)=1]i=2nφ(n)+[n=1],且对于正整数 n > 2 n>2 n>2来说 φ ( n ) \varphi(n) φ(n)是偶数。
      • n ≠ 1 时 , 2 ∑ i = 1 n [ ( n , i ) = 1 ] ⋅ i = ∑ i = 1 n [ ( n , i ) = 1 ] ⋅ i + ∑ i = 1 n [ ( n , i ) = 1 ] ⋅ ( n − i ) = ∑ i = 1 n [ ( n , i ) = 1 ] ⋅ n = n ∑ i = 1 n [ ( n , i ) = 1 ] = n ⋅ φ ( n ) , 则 ∑ i = 1 n [ ( n , i ) = 1 ] ⋅ i = n ⋅ φ ( n ) 2 n\ne1时,2\sum_{i=1}^n[(n,i)=1]\cdot i=\sum_{i=1}^n[(n,i)=1]\cdot i+\sum_{i=1}^n[(n,i)=1]\cdot(n-i)=\\ \sum_{i=1}^n[(n,i)=1]\cdot n=n\sum_{i=1}^n[(n,i)=1]=n\cdot\varphi(n),则\sum_{i=1}^n[(n,i)=1]\cdot i=\frac{n\cdot \varphi(n)}{2} n̸=12i=1n[(n,i)=1]i=i=1n[(n,i)=1]i+i=1n[(n,i)=1](ni)=i=1n[(n,i)=1]n=ni=1n[(n,i)=1]=nφ(n),i=1n[(n,i)=1]i=2nφ(n)
    5. 莫比乌斯函数 μ ( n ) μ(n) μ(n),在狄利克雷卷积的乘法中与恒等函数互为逆元, μ ( 1 ) = 1 μ(1)=1 μ(1)=1,对于无平方因子数 n = ∏ i = 1 t p i n=∏^t_{i=1}p_i n=i=1tpi μ ( n ) = ( − 1 ) t μ(n)=(−1)^t μ(n)=(1)t,对于有平方因子数 n n n μ ( n ) = 0 μ(n)=0 μ(n)=0
    6. 元函数 e ( n ) = [ n = 1 ] e(n)=[n=1] e(n)=[n=1],狄利克雷卷积的乘法单位元,完全积性。
    7. 恒等函数 I ( n ) = 1 I(n)=1 I(n)=1,完全积性。
    8. 单位函数 i d ( n ) = n id(n)=n id(n)=n,完全积性。
    9. 幂函数 i d k ( n ) = n k id^k(n)=n^k idk(n)=nk,完全积性。
  3. 关于莫比乌斯函数和欧拉函数有两个经典的公式
    • [ n = 1 ] = ∑ d ∣ n μ ( d ) [n=1]=∑_{d|n}μ(d) [n=1]=dnμ(d),将 μ ( d ) μ(d) μ(d)看作是容斥的系数即可证明。
    • n = ∑ d ∣ n φ ( d ) n=∑_{d|n}φ(d) n=dnφ(d),将 i n ( 1 ≤ i ≤ n ) \frac in(1≤i≤n) ni(1in)化为最简分数统计个数即可证明。

【狄利克雷卷积与莫比乌斯反演】

  1. 数论函数 f f f g g g狄利克雷卷积定义为 ( f ∗ g ) ( n ) = ∑ d ∣ n f ( d ) ⋅ g ( n d ) (f∗g)(n)=∑_{d|n}f(d)⋅g(\frac nd) (fg)(n)=dnf(d)g(dn),狄利克雷卷积满足交换律 ( ( f ∗ g ) ( n ) = ( g ∗ f ) ( n ) = ∑ d ∣ n g ( d ) f ( n d ) ) ((f*g)(n)=(g*f)(n)=\sum_{d|n}g(d)f(\frac nd)) ((fg)(n)=(gf)(n)=dng(d)f(dn))、结合律 ( f ∗ g ∗ h = f ∗ ( g ∗ h ) ) (f*g*h=f*(g*h)) (fgh=f(gh)),对加法满足分配律,存在单位元函数 e ( n ) = [ n = 1 ] e(n)=[n=1] e(n)=[n=1]使得 f ∗ e = f = e ∗ f f∗e=f=e∗f fe=f=ef,若 f f f g g g为积性函数则 f ∗ g f∗g fg也为积性函数。
  2. 狄利克雷卷积的一个常用技巧是对于积性函数 f f f与恒等函数 I I I的卷积的处理,例如 n = ∏ i = 1 t p i e i , ( f ∗ I ) ( n ) = ∑ d ∣ n f ( d ) I ( n d ) = ∑ d ∣ n f ( d ) = ∏ i = 1 t ∑ j = 0 e i f ( p i j ) n=\prod_{i=1}^tp_i^{e_i},(f*I)(n)=\sum_{d|n}f(d)I(\frac nd)=\sum_{d|n}f(d)=\prod_{i=1}^t\sum_{j=0}^{e_i}f(p_i^j) n=i=1tpiei,(fI)(n)=dnf(d)I(dn)=dnf(d)=i=1tj=0eif(pij)
  3. 莫比乌斯反演也是对于 g ( n ) = ∑ d ∣ n f ( d ) ( g = f ∗ I ) g(n)=∑_{d|n}f(d)(g=f*I) g(n)=dnf(d)(g=fI) 的讨论,但是不要求 f f f 是积性函数,适用于已知 g ( n ) g(n) g(n) f ( n ) f(n) f(n) 的情况,由于 ( I ∗ μ ) ( n ) = ∑ d ∣ n μ ( d ) = e ( n ) (I*\mu)(n)=\sum_{d|n}\mu(d)=e(n) (Iμ)(n)=dnμ(d)=e(n),则 g ∗ μ = ( f ∗ I ) ∗ μ = f ∗ ( I ∗ μ ) = f ∗ e = f g*\mu=(f*I)*\mu=f*(I*\mu)=f*e=f gμ=(fI)μ=f(Iμ)=fe=f,即若 g = f ∗ I g=f*I g=fI,则 f ( n ) = ( g ∗ μ ) ( n ) = ∑ d ∣ n g ( d ) ⋅ μ ( n d ) f(n)=(g*\mu)(n)=\sum_{d|n}g(d)\cdot\mu(\frac nd) f(n)=(gμ)(n)=dng(d)μ(dn),类似的有 g ( n ) = ∑ n ∣ d f ( d ) ⇒ f ( n ) = ∑ n ∣ d g ( d ) ⋅ μ ( d n ) g(n)=\sum_{n|d}f(d)\Rightarrow f(n)=\sum_{n|d}g(d)\cdot\mu(\frac dn) g(n)=ndf(d)f(n)=ndg(d)μ(nd),二项式反演也是类似的技巧。有一个例子可以看出欧拉函数和莫比乌斯函数之间的关系,由于 ∑ d ∣ n φ ( d ) = i d ( n ) \sum_{d|n}\varphi(d)=id(n) dnφ(d)=id(n),所以 φ ( n ) = ∑ d ∣ n μ ( d ) ⋅ n d \varphi(n)=\sum_{d|n}\mu(d)\cdot\frac nd φ(n)=dnμ(d)dn,即 φ ( n ) n = ∑ d ∣ n μ ( d ) d \frac{\varphi(n)}n=\sum_{d|n}\frac{\mu(d)}d nφ(n)=dndμ(d)

【正文:黑科技】

这种黑科技在低于线性时间的复杂度下解决一类积性函数的前缀和问题。

首先看一个简单的例子,求前 n n n个正整数的约数之和,即 ∑ i = 1 n σ ( i ) ∑^n_{i=1}σ(i) i=1nσ(i),其中 n ≤ 1 0 12 n≤10^{12} n1012。显然不能直接做了,但是我们可以推导一番:
方 法 1 : ∑ i = 1 n σ ( i ) = ∑ i = 1 n ∑ d ∣ i d = ∑ d = 1 n d ∑ i = 1 n d = ∑ i = 1 n i ⋅ ⌊ n i ⌋ 方 法 2 : ∑ i = 1 n σ ( i ) = ∑ i = 1 n ∑ d ∣ i d = ∑ i = 1 n ∑ d = 1 n i d = ∑ i = 1 n ⌊ n i ⌋ ⋅ ( ⌊ n i ⌋ + 1 ) 2 方法1:\sum_{i=1}^n\sigma(i)=\sum_{i=1}^n\sum_{d|i}d=\sum_{d=1}^nd\sum_{i=1}^\frac nd=\sum_{i=1}^ni\cdot\lfloor\frac ni\rfloor\\ 方法2:\sum_{i=1}^n\sigma(i)=\sum_{i=1}^n\sum_{d|i}d=\sum_{i=1}^n\sum_{d=1}^{\frac ni}d=\sum_{i=1}^n\frac{\lfloor\frac ni\rfloor\cdot (\lfloor\frac ni\rfloor+1)}{2} 1i=1nσ(i)=i=1ndid=d=1ndi=1dn=i=1niin2i=1nσ(i)=i=1ndid=i=1nd=1ind=i=1n2in(in+1)
i ≤ n i\le \sqrt{n} in 时, ⌊ n i ⌋ \lfloor\frac ni \rfloor in显然只有 O ( n ) O(\sqrt{n}) O(n )个取值;当 i ≥ n i\ge\sqrt{n} in 同样;对于固定的 ⌊ n i ⌋ \lfloor\frac ni\rfloor in i i i的取值是一段连续的区间,这段区间是 [ ⌊ n ⌊ n i ⌋ + 1 ⌋ + 1 , ⌊ n ⌊ n i ⌋ ⌋ ] [\bigg\lfloor\frac{n}{\lfloor\frac ni \rfloor+1}\bigg\rfloor+1,\bigg\lfloor\frac{n}{\lfloor\frac ni \rfloor}\bigg\rfloor ] [in+1n+1,inn],因此可以 O ( n ) O(\sqrt{n}) O(n )求得。

n = 10 n=10 n=10时, ∑ i = 1 n σ ( i ) = 1 × 10 + 2 × 5 + 3 × 3 + 4 × 2 + 5 × 2 + 6 × 1 + 7 × 1 + 8 × 1 + 9 × 1 + 10 × 1 \sum_{i=1}^n\sigma(i)=1\times10+2\times5+3\times3+4\times2+5\times2+6\times1+7\times1+8\times1+9\times1+10\times1 i=1nσ(i)=1×10+2×5+3×3+4×2+5×2+6×1+7×1+8×1+9×1+10×1,
∑ i = 1 n σ ( i ) = 10 × 1 + 5 × 2 + 3 × 3 + 2 × ( 4 + 5 ) + 1 × ( 6 + 7 + 8 + 9 + 10 ) \sum_{i=1}^n\sigma(i)=10\times1+5\times2+3\times3+2\times(4+5)+1\times(6+7+8+9+10) i=1nσ(i)=10×1+5×2+3×3+2×(4+5)+1×(6+7+8+9+10)


求前n个正整数的约数个数之和也类似:
∑ i = 1 n σ 0 ( i ) = ∑ i = 1 n ∑ d ∣ n 1 = ∑ d = 1 n ∑ i = 1 n d 1 = ∑ d = 1 n ⌊ n d ⌋ \sum_{i=1}^n\sigma_0(i)=\sum_{i=1}^n\sum_{d|n}1=\sum_{d=1}^n\sum_{i=1}^\frac nd1=\sum_{d=1}^n\lfloor\frac nd\rfloor i=1nσ0(i)=i=1ndn1=d=1ni=1dn1=d=1ndn


现在我们来加大一点难度,(51Nod 1239)求前 n n n个正整数的欧拉函数之和,即 Φ ( n ) = ∑ i = 1 n φ ( i ) \Phi(n)=∑^n_{i=1}φ(i) Φ(n)=i=1nφ(i),其中 n ≤ 1 0 11 n≤10^{11} n1011

对于 φ ( i ) \varphi(i) φ(i),我们知道 ∑ d ∣ n φ ( d ) = n \sum_{d|n}\varphi(d)=n dnφ(d)=n,即 ( φ ∗ I ) ( n ) = ∑ d ∣ n φ ( d ) I ( n d ) = ∑ d ∣ n φ ( d ) = n (\varphi*I)(n)=\sum_{d|n}\varphi(d)I(\frac nd)=\sum_{d|n}\varphi(d)=n (φI)(n)=dnφ(d)I(dn)=dnφ(d)=n,则
n ⋅ ( n + 1 ) 2 = ∑ i = 1 n i = ∑ i = 1 n ( φ ∗ I ) ( i ) = ∑ i = 1 n ∑ d ∣ n σ ( d ) = ∑ i = 1 n ∑ d = 1 n i σ ( d ) = ∑ i = 1 n Φ ( ⌊ n i ⌋ ) \frac{n\cdot(n+1)}{2}=\sum_{i=1}^ni=\sum_{i=1}^n(\varphi*I)(i)=\sum_{i=1}^n\sum_{d|n}\sigma(d)=\sum_{i=1}^n\sum_{d=1}^{\frac ni}\sigma(d)=\sum_{i=1}^n\Phi(\lfloor\frac ni\rfloor) 2n(n+1)=i=1ni=i=1n(φI)(i)=i=1ndnσ(d)=i=1nd=1inσ(d)=i=1nΦ(in)

对于 ∑ i = 1 n Φ ( ⌊ n i ⌋ ) \sum_{i=1}^n\Phi(\lfloor\frac ni\rfloor) i=1nΦ(in),如果 n = 1 n=1 n=1则即是我们要求的 Φ ( n ) \Phi(n) Φ(n)
则 Φ ( n ) = ∑ i = 1 n Φ ( ⌊ n i ⌋ ) − ∑ i = 2 n Φ ( ⌊ n i ⌋ ) = n ⋅ ( n + 1 ) 2 − ∑ i = 2 n Φ ( ⌊ n i ⌋ ) 则\Phi(n)=\sum_{i=1}^n\Phi(\lfloor\frac ni\rfloor)-\sum_{i=2}^n\Phi(\lfloor\frac ni\rfloor)=\frac{n\cdot (n+1)}2-\sum_{i=2}^n\Phi(\lfloor \frac ni\rfloor) Φ(n)=i=1nΦ(in)i=2nΦ(in)=2n(n+1)i=2nΦ(in)
由于 Φ ( n ) \Phi(n) Φ(n)是一个积性函数的前缀和,所以筛法也可以预处理一部分。所以总复杂度为 O ( n 2 3 ) O(n^{\frac 23}) O(n32)


如果能通过狄利克雷卷积构造一个更好计算前缀和的函数,且用于卷积的另一个函数也易计算,则可以简化计算过程。例如上题就是利用了 φ ∗ I = i d φ∗I=id φI=id的性质,但一定注意,不是所有的这一类题都只用配个恒等函数 I I I
就可以轻松完事的,有时需要更细致的观察。


(51Nod 1244)定义梅滕斯函数 M ( n ) = ∑ i = 1 n μ ( i ) M(n)=∑^n_{i=1}μ(i) M(n)=i=1nμ(i)给定正整数 n n n计算 M ( n ) M(n) M(n),其中 n ≤ 1 0 11 n≤10^{11} n1011。可以利用 μ ∗ I = e \mu*I=e μI=e的性质简化。

对于 μ ( i ) \mu(i) μ(i),有 ∑ d ∣ n μ ( d ) = [ n = 1 ] \sum_{d|n}\mu(d)=[n=1] dnμ(d)=[n=1],则 ( μ ∗ I ) ( n ) = ∑ d ∣ n μ ( d ) I ( n d ) = [ n = 1 ] (\mu*I)(n)=\sum_{d|n}\mu(d)I(\frac nd)=[n=1] (μI)(n)=dnμ(d)I(dn)=[n=1],则
1 = ∑ i = 1 n [ i = 1 ] = ∑ i = 1 n ( μ ∗ I ) ( i ) = ∑ i = 1 n ∑ d ∣ n μ ( d ) = ∑ i = 1 n ∑ d = 1 n i μ ( d ) = ∑ i = 1 n M ( ⌊ n i ⌋ ) 同 理 得 : M ( n ) = ∑ i = 1 n M ( ⌊ n i ⌋ ) − ∑ i = 2 n M ( ⌊ n i ⌋ ) = 1 − ∑ i = 2 n M ( ⌊ n i ⌋ ) 1=\sum_{i=1}^n[i=1]=\sum_{i=1}^n(\mu*I)(i)=\sum_{i=1}^n\sum_{d|n}\mu(d)=\sum_{i=1}^n\sum_{d=1}^{\frac ni}\mu(d)=\sum_{i=1}^nM(\lfloor\frac ni \rfloor)\\ 同理得: M(n)=\sum_{i=1}^nM(\lfloor\frac ni \rfloor)-\sum_{i=2}^nM(\lfloor \frac ni\rfloor)=1-\sum_{i=2}^nM(\lfloor\frac ni \rfloor) 1=i=1n[i=1]=i=1n(μI)(i)=i=1ndnμ(d)=i=1nd=1inμ(d)=i=1nM(in)M(n)=i=1nM(in)i=2nM(in)=1i=2nM(in)
同理复杂度为 O ( n 2 3 ) O(n^{\frac 23}) O(n32)


(51Nod 1237)定义最大公约数之和的函数 G ( n ) = ∑ i = 1 n ∑ j = 1 n g c d ( i , j ) G(n)=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j) G(n)=i=1nj=1ngcd(i,j),给定正整数n,计算 G ( n ) G(n) G(n),其中 n ≤ 1 0 10 n\le10^{10} n1010
方 法 1 : G ( n ) = ∑ i = 1 n ∑ j = 1 n g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] ⋅ d 因 为 [ g c d ( i , j ) = 1 ] = ∑ k ∣ g c d ( i , j ) μ ( k ) 则 G ( n ) = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d ∑ k ∣ g c d ( i , j ) μ ( k ) ⋅ d = ∑ k = 1 n μ ( k ) ∑ d = 1 n d ∑ i = 1 n k d ∑ j = 1 n k d 1 = ∑ k = 1 n μ ( k ) ∑ d = 1 n d ⋅ ⌊ n k d ⌋ 2 令 T = n k , 则 得 ∑ T = 1 n ⌊ n T ⌋ 2 ∑ d ∣ T d ⋅ μ ( T d ) 再 由 n = i d ( n ) = ∑ d ∣ n φ ( d ) , 则 由 莫 比 乌 斯 反 演 得 φ ( n ) = ∑ d ∣ n i d ( d ) ⋅ μ ( n d ) = ∑ d ∣ n d ⋅ μ ( n d ) 则 得 ∑ T = 1 n ⌊ n T ⌋ 2 φ ( T ) , 剩 下 就 是 求 欧 拉 函 数 前 缀 和 了 。 方法1:G(n)=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]\cdot d\\ 因为[gcd(i,j)=1]=\sum_{k|gcd(i,j)}\mu(k) \\ 则G(n)=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}\sum_{k|gcd(i,j)}\mu(k)\cdot d=\sum_{k=1}^n\mu(k)\sum_{d=1}^{n}d\sum_{i=1}^{\frac n{kd}}\sum_{j=1}^{\frac n{kd}}1=\sum_{k=1}^n\mu(k)\sum_{d=1}^{ n}d\cdot\lfloor\frac n{kd}\rfloor^2\\ 令T=nk, 则得\sum_{T=1}^n\lfloor\frac n{T}\rfloor ^2\sum_{d|T}d\cdot\mu(\frac Td)\\ 再由n=id(n)=\sum_{d|n}\varphi(d), 则由莫比乌斯反演得\varphi(n)=\sum_{d|n}id(d)\cdot\mu(\frac nd)=\sum_{d|n}d\cdot\mu(\frac nd)\\ 则得\sum_{T=1}^n\lfloor\frac{n}{T}\rfloor^2\varphi(T),剩下就是求欧拉函数前缀和了。 1G(n)=i=1nj=1ngcd(i,j)=i=1nj=1nd=1n[gcd(i,j)=d]d=d=1ni=1dnj=1dn[gcd(i,j)=1]d[gcd(i,j)=1]=kgcd(i,j)μ(k)G(n)=d=1ni=1dnj=1dnkgcd(i,j)μ(k)d=k=1nμ(k)d=1ndi=1kdnj=1kdn1=k=1nμ(k)d=1ndkdn2T=nk,T=1nTn2dTdμ(dT)n=id(n)=dnφ(d),φ(n)=dnid(d)μ(dn)=dndμ(dn)T=1nTn2φ(T)


方 法 2 : G ( n ) = ∑ i = 1 n ∑ j = 1 n g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] ⋅ d ∑ d = 1 n d ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] = ∑ d = 1 n d ( ( 2 ∑ i = 1 n d φ ( i ) ) − 1 ) , 则 剩 下 就 是 求 欧 拉 函 数 前 缀 和 了 。 对 于 ∑ i = 1 n ∑ j = 1 n [ g c d ( i , j ) = 1 ] = 2 ∑ i = 1 n ∑ j = 1 i [ g c d ( i , j ) = 1 ] − ∑ i = 1 n [ g c d ( i , i ) = 1 ] = ( 2 ∑ i = 1 n φ ( i ) ) − 1 方法2:G(n)=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]\cdot d\\ \sum_{d=1}^nd\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]=\sum_{d=1}^nd\bigg(\big(2\sum_{i=1}^{\frac nd}\varphi(i)\big)-1\bigg),则剩下就是求欧拉函数前缀和了。\\ 对于\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=1]=2\sum_{i=1}^n\sum_{j=1}^i[gcd(i,j)=1]-\sum_{i=1}^n[gcd(i,i)=1]=\big(2\sum_{i=1}^n\varphi(i)\big)-1 2G(n)=i=1nj=1ngcd(i,j)=i=1nj=1nd=1n[gcd(i,j)=d]d=d=1ni=1dnj=1dn[gcd(i,j)=1]dd=1ndi=1dnj=1dn[gcd(i,j)=1]=d=1nd((2i=1dnφ(i))1)i=1nj=1n[gcd(i,j)=1]=2i=1nj=1i[gcd(i,j)=1]i=1n[gcd(i,i)=1]=(2i=1nφ(i))1


(51Nod 1238)定义最小公倍数之和的函数 L ( n ) = ∑ i = 1 n ∑ j = 1 n l c m ( i , j ) L(n)=\sum_{i=1}^n\sum_{j=1}^nlcm(i,j) L(n)=i=1nj=1nlcm(i,j)给定正整数n计算 L ( n ) L(n) L(n),其中 n ≤ 1 0 10 n\le10^{10} n1010
方 法 1 : L ( n ) = ∑ i = 1 n ∑ j = 1 n l c m ( i , j ) = ∑ i = 1 n ∑ j = 1 n i ⋅ j g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] i ⋅ j d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] i ⋅ j ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d ∑ k ∣ g c d ( i , j ) μ ( k ) ⋅ i ⋅ j ⋅ d = ∑ d = 1 n ∑ k = 1 n d ∑ i = 1 n d k ∑ j = 1 n d k i ⋅ j ⋅ d ⋅ μ ( k ) ⋅ k 2 = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ∑ i = 1 n d k i ∑ j = 1 n d k j = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ⋅ ( ⌊ n d k ⌋ + 1 ) 2 ⋅ ⌊ n d k ⌋ 2 4 然 后 就 是 求 μ ( k ) ⋅ k 2 的 前 缀 和 , 但 是 这 个 方 法 时 间 复 杂 度 过 高 好 像 为 O ( n ) , 此 题 不 可 行 。 后 面 有 一 道 题 要 用 此 方 法 。 方法1:L(n)=\sum_{i=1}^n\sum_{j=1}^nlcm(i,j)=\sum_{i=1}^n\sum_{j=1}^n\frac{i\cdot j}{gcd(i,j)}=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\frac{i\cdot j}{d}\\ =\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]i\cdot j\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}\sum_{k|gcd(i,j)}\mu(k)\cdot i\cdot j\cdot d=\sum_{d=1}^n\sum_{k=1}^{\frac nd}\sum_{i=1}^{\frac {n}{dk}}\sum_{j=1}^{\frac{n}{dk}}i\cdot j\cdot d\cdot\mu(k)\cdot k^2\\ =\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\sum_{i=1}^{\frac {n}{dk}}i\sum_{j=1}^{\frac{n}{dk}}j=\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\cdot\frac{(\lfloor\frac n{dk}\rfloor+1)^2\cdot \lfloor\frac n{dk}\rfloor^2}{4}\\ 然后就是求\mu(k)\cdot k^2的前缀和,但是这个方法时间复杂度过高好像为O(n),此题不可行。后面有一道题要用此方法。 1L(n)=i=1nj=1nlcm(i,j)=i=1nj=1ngcd(i,j)ij=i=1nj=1nd=1n[gcd(i,j)=d]dij=d=1ni=1dnj=1dn[gcd(i,j)=1]ijd=d=1ni=1dnj=1dnkgcd(i,j)μ(k)ijd=d=1nk=1dni=1dknj=1dknijdμ(k)k2=d=1ndk=1dnμ(k)k2i=1dknij=1dknj=d=1ndk=1dnμ(k)k24(dkn+1)2dkn2μ(k)k2O(n)


方 法 2 : L ( n ) = ∑ i = 1 n ∑ j = 1 n l c m ( i , j ) = ∑ i = 1 n ∑ j = 1 n i ⋅ j g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] i ⋅ j d = ∑ d = 1 n d ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] i ⋅ j = ∑ d = 1 n d ∑ i = 1 n d i ∑ j = 1 n d [ g c d ( i , j ) = 1 ] j 因 为 ∑ i = 1 n i ∑ j = 1 n [ g c d ( i , j ) = 1 ] ⋅ j = 2 ∑ i = 1 n i ∑ j = 1 i [ g c d ( i , j ) = 1 ] ⋅ j − ∑ i = 1 n [ g c d ( i , i ) = 1 ] ⋅ i = ( 2 ∑ i = 1 n i i ⋅ φ ( i ) + [ i = 1 ] 2 ) − 1 = ( ∑ i = 1 n i 2 ⋅ φ ( i ) + [ i = 1 ] ) − 1 则 得 ∑ d = 1 n d ( ( ∑ i = 1 n d i 2 ⋅ φ ( i ) + [ i = 1 ] ) − 1 ) = ∑ d = 1 n d ∑ i = 1 n d i 2 ⋅ φ ( i ) , 然 后 就 是 求 ϕ ( n ) = ∑ i = 1 n i 2 ⋅ φ ( i ) 。 令 f ( n ) = n 2 ⋅ φ ( n ) , 则 ∑ d ∣ n f ∗ ( i d ) 2 ( n ) = ∑ d ∣ n d 2 ⋅ φ ( d ) ⋅ ( n d ) 2 = n 2 ∑ d ∣ n φ ( d ) = n 3 则 n 2 ⋅ ( n + 1 ) 2 4 = ∑ i = 1 n i 3 = ∑ i = 1 n ( f ∗ i d 2 ) ( i ) = ∑ i = 1 n ∑ d ∣ i d 2 ⋅ φ ( d ) ⋅ ( i d ) 2 = ∑ i = 1 n i 2 ∑ d = 1 n i d 2 ⋅ φ ( d ) = ∑ i = 1 n i 2 ⋅ ϕ ( n i ) , 则 ϕ ( n ) = ∑ i = 1 n i 2 ⋅ ϕ ( n i ) − ∑ i = 2 n i 2 ⋅ ϕ ( n i ) = n 2 ⋅ ( n + 1 ) 2 4 − ∑ i = 1 n i 2 ⋅ ϕ ( n i ) 最 终 得 L ( n ) = ∑ d = 1 n d ⋅ ϕ ( n d ) 方法2:L(n)=\sum_{i=1}^n\sum_{j=1}^nlcm(i,j)=\sum_{i=1}^n\sum_{j=1}^n\frac{i\cdot j}{gcd(i,j)}=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\frac{i\cdot j}{d}\\ =\sum_{d=1}^nd\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]i\cdot j=\sum_{d=1}^nd\sum_{i=1}^{\frac nd}i\sum_{j=1}^{\frac nd}[gcd(i,j)=1]j\\ 因为\sum_{i=1}^{n}i\sum_{j=1}^{n}[gcd(i,j)=1]\cdot j=2\sum_{i=1}^{n}i\sum_{j=1}^i[gcd(i,j)=1]\cdot j-\sum_{i=1}^n[gcd(i,i)=1]\cdot i\\ =\bigg(2\sum_{i=1}^ni\frac{i\cdot\varphi(i)+[i=1]}{2}\bigg)-1=\bigg(\sum_{i=1}^ni^2\cdot\varphi(i)+[i=1]\bigg)-1\\ 则得\sum_{d=1}^nd\bigg(\big(\sum_{i=1}^{\frac nd}i^2\cdot\varphi(i)+[i=1]\big)-1\bigg)=\sum_{d=1}^nd\sum_{i=1}^{\frac nd}i^2\cdot\varphi(i),然后就是求\phi(n)=\sum_{i=1}^ni^2\cdot \varphi(i)。\\ 令f(n)=n^2\cdot \varphi(n),则\sum_{d|n}f*(id)^2(n)=\sum_{d|n}d^2\cdot\varphi(d)\cdot(\frac nd)^2=n^2\sum_{d|n}\varphi(d)=n^3\\ 则\frac {n^2\cdot(n+1)^2}4=\sum_{i=1}^ni^3=\sum_{i=1}^n(f*id^2)(i)=\sum_{i=1}^n\sum_{d|i}d^2\cdot\varphi(d)\cdot(\frac id)^2=\sum_{i=1}^ni^2\sum_{d=1}^{\frac ni}d^2\cdot\varphi(d)\\=\sum_{i=1}^ni^2\cdot\phi(\frac ni),则\phi(n)=\sum_{i=1}^ni^2\cdot \phi(\frac ni)-\sum_{i=2}^ni^2\cdot \phi(\frac ni)=\frac{n^2\cdot(n+1)^2}{4}-\sum_{i=1}^ni^2\cdot\phi(\frac ni)\\ 最终得L(n)=\sum_{d=1}^nd\cdot\phi(\frac nd) 2L(n)=i=1nj=1nlcm(i,j)=i=1nj=1ngcd(i,j)ij=i=1nj=1nd=1n[gcd(i,j)=d]dij=d=1ndi=1dnj=1dn[gcd(i,j)=1]ij=d=1ndi=1dnij=1dn[gcd(i,j)=1]ji=1nij=1n[gcd(i,j)=1]j=2i=1nij=1i[gcd(i,j)=1]ji=1n[gcd(i,i)=1]i=(2i=1ni2iφ(i)+[i=1])1=(i=1ni2φ(i)+[i=1])1d=1nd((i=1dni2φ(i)+[i=1])1)=d=1ndi=1dni2φ(i)ϕ(n)=i=1ni2φ(i)f(n)=n2φ(n)dnf(id)2(n)=dnd2φ(d)(dn)2=n2dnφ(d)=n34n2(n+1)2=i=1ni3=i=1n(fid2)(i)=i=1ndid2φ(d)(di)2=i=1ni2d=1ind2φ(d)=i=1ni2ϕ(in)ϕ(n)=i=1ni2ϕ(in)i=2ni2ϕ(in)=4n2(n+1)2i=1ni2ϕ(in)L(n)=d=1ndϕ(dn)

(Tsinsen A1231)定义最小公倍数之和的函数 L ( n , m ) = ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) L(n,m)=\sum_{i=1}^n\sum_{j=1}^m lcm(i,j) L(n,m)=i=1nj=1mlcm(i,j)给定正整数n,m,计算 L ( n , m ) L(n,m) L(n,m),其中 n , m ≤ 1 0 7 n,m\le10^{7} n,m107
L ( n ) = ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) = ∑ i = 1 n ∑ j = 1 m i ⋅ j g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 m ∑ d = 1 n [ g c d ( i , j ) = d ] i ⋅ j d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 m d [ g c d ( i , j ) = 1 ] i ⋅ j ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 m d ∑ k ∣ g c d ( i , j ) μ ( k ) ⋅ i ⋅ j ⋅ d = ∑ d = 1 n ∑ k = 1 n d ∑ i = 1 n d k ∑ j = 1 m d k i ⋅ j ⋅ d ⋅ μ ( k ) ⋅ k 2 = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ∑ i = 1 n d k i ∑ j = 1 m d k j = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ⋅ ⌊ n d k ⌋ ⋅ ( ⌊ n d k ⌋ + 1 ) ⋅ ⌊ m d k ⌋ ⋅ ( ⌊ m d k ⌋ + 1 ) 4 到 此 时 此 题 已 经 可 以 过 了 。 复 杂 度 为 O ( n ) . 但 其 实 还 可 以 优 化 。 将 最 后 面 的 一 部 分 记 为 s u m ( n d k , m d k ) , 则 上 式 = ∑ d = 1 n s u m ( n d , m d ) ∑ k ∣ d d k ⋅ μ ( k ) ⋅ k 2 , 再 令 f ( d ) = ∑ k ∣ d d k ⋅ μ ( k ) ⋅ k 2 , 因 为 积 性 函 数 的 约 数 和 也 是 积 性 函 数 , 所 以 f 数 组 可 以 预 处 理 出 来 。 对 于 一 个 素 数 p , 它 的 新 f 值 显 然 是 p − p 2 的 如 果 p 是 多 个 素 数 的 一 次 项 的 积 显 然 f 是 积 性 的 f ( p ) = f ( p 1 ) ∗ f ( p 2 ) ∗ f ( p 3 ) … … 如 果 p 的 唯 一 分 解 存 在 质 因 子 的 指 数 大 于 1 , 它 新 增 的 每 一 个 因 子 的 μ 值 都 是 0 , 没 有 意 义 , 只 有 统 计 时 D 变 成 了 原 来 的 j 倍 所 以 此 时 f ( p ) = f ( i ) ∗ j 前 缀 和 在 之 后 加 一 下 就 可 以 了 L(n)=\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)=\sum_{i=1}^n\sum_{j=1}^m\frac{i\cdot j}{gcd(i,j)}=\sum_{i=1}^n\sum_{j=1}^m\sum_{d=1}^n[gcd(i,j)=d]\frac{i\cdot j}{d}\\ =\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac md}[gcd(i,j)=1]i\cdot j\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac md}\sum_{k|gcd(i,j)}\mu(k)\cdot i\cdot j\cdot d=\sum_{d=1}^n\sum_{k=1}^{\frac nd}\sum_{i=1}^{\frac {n}{dk}}\sum_{j=1}^{\frac{m}{dk}}i\cdot j\cdot d\cdot\mu(k)\cdot k^2\\ =\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\sum_{i=1}^{\frac {n}{dk}}i\sum_{j=1}^{\frac{m}{dk}}j=\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\cdot\frac{\lfloor\frac n{dk}\rfloor\cdot(\lfloor\frac n{dk}\rfloor+1)\cdot \lfloor\frac m{dk}\rfloor\cdot(\lfloor\frac m{dk}\rfloor+1)}{4}\\ 到此时此题已经可以过了。复杂度为O(n).但其实还可以优化。将最后面的一部分记为sum(\frac n{dk},\frac m{dk}),\\ 则上式=\sum_{d=1}^nsum(\frac nd,\frac md)\sum_{k|d}\frac dk\cdot\mu(k)\cdot k^2,再令f(d)=\sum_{k|d}\frac dk\cdot\mu(k)\cdot k^2,\\因为积性函数的约数和也是积性函数,所以f数组可以预处理出来。对于一个素数p,它的新 f 值显然是 p - p^2 的\\ 如果 p 是多个素数的一次项的积\\ 显然 f 是积性的 f( p ) = f( p1 ) * f( p2 ) * f( p3 )……\\ 如果 p 的唯一分解存在质因子的\\指数大于1,它新增的每一个因子的 μ 值都是0,没有意义,只有统计时D变成了原来的 j 倍\\ 所以 此时f( p ) = f( i ) * j\\ 前缀和在之后加一下就可以了\\ L(n)=i=1nj=1mlcm(i,j)=i=1nj=1mgcd(i,j)ij=i=1nj=1md=1n[gcd(i,j)=d]dij=d=1ni=1dnj=1dm[gcd(i,j)=1]ijd=d=1ni=1dnj=1dmkgcd(i,j)μ(k)ijd=d=1nk=1dni=1dknj=1dkmijdμ(k)k2=d=1ndk=1dnμ(k)k2i=1dknij=1dkmj=d=1ndk=1dnμ(k)k24dkn(dkn+1)dkm(dkm+1)O(n).sum(dkn,dkm)=d=1nsum(dn,dm)kdkdμ(k)k2f(d)=kdkdμ(k)k2fpfpp2pff(p)=f(p1)f(p2)f(p3)p1μ0Djf(p)=f(i)j
不知道为什么显然的看下面(类似)

积性函数的线性筛原理:

∵ ∑ d ∣ n φ ( d ) = n , 则 由 莫 比 乌 斯 反 演 得 φ ( n ) = ∑ d ∣ n μ ( d ) ⋅ n d = ∑ d ∣ n μ ( n d ) ⋅ d 由 莫 比 乌 斯 函 数 的 意 义 : μ ( n ) = { 1 若 n = 1 ( − 1 ) k 若 n 无 平 方 数 因 数 , 且 n = p 1 p 2 … p k 0 若 n 有 大 于 1 的 平 方 因 数 可 知 , 当 n 为 素 数 时 , φ ( n ) = μ ( n ) ⋅ 1 + μ ( 1 ) ⋅ n = n − 1 当 n = p 1 p 2 … p k , 即 无 平 方 数 因 数 , φ ( n ) = φ ( p 1 ) ⋅ φ ( p 2 ) ⋅ ⋯ ⋅ φ ( p k ) 当 n 中 有 平 方 数 因 数 时 , 平 方 数 因 数 对 φ ( n ) 没 有 贡 献 即 : 假 设 n = i ⋅ y , y 是 x 的 一 个 最 小 质 因 数 则 : φ ( i ) = ∑ d ∣ i μ ( d ) i d φ ( n ) = φ ( i ⋅ y ) = ∑ d ∣ ( i ⋅ y ) μ ( d ) i ⋅ y d = y ⋅ ∑ d ∣ ( i ⋅ y ) μ ( d ) i d = y ⋅ φ ( i ) 综 上 φ ( n ) = { n − 1 n ∈ p r i m e s f ( i ) ⋅ y y 2 ∣ n f ( i ) ⋅ f ( y ) y 2 ∣ ̸ n 其 中 , y 为 n 的 最 小 质 因 数 , 并 且 n = i ⋅ y \because \sum_{d|n}\varphi(d)=n,则由莫比乌斯反演得\varphi(n)=\sum_{d|n}\mu(d)\cdot\frac{n}{d}=\sum_{d|n}\mu(\frac{n}{d})\cdot d\\ 由莫比乌斯函数的意义: \mu(n)=\left\{\begin{array}{ll} 1&若n=1\\ (-1)^k&若n无平方数因数,且n=p_1p_2\dots p_k\\ 0&若n有大于1的平方因数 \end{array}\right.\\可知,当n为素数时,\varphi(n)=\mu(n)\cdot 1+\mu(1)\cdot n=n-1 \\当n=p_1p_2\dots p_k,即无平方数因数,\varphi(n)=\varphi(p_1)\cdot\varphi(p_2)\cdot \dots\cdot\varphi(p_k)\\ 当n中有平方数因数时,平方数因数对\varphi(n)没有贡献即:\\ 假设n=i\cdot y,y是x的一个最小质因数则:\varphi(i)=\sum_{d|i}\mu(d)\frac {i}{d}\\ \varphi(n)=\varphi(i\cdot y)=\sum_{d|(i\cdot y)}\mu(d)\frac {i\cdot y}{d}=y\cdot \sum_{d|(i\cdot y)}\mu(d)\frac {i}{d}=y\cdot \varphi(i)\\ \\综上\varphi(n)= \left\{\begin{matrix} n-1&n\in primes\\ f(i)\cdot y&y^2|n\\ f(i)\cdot f(y)&y^2 |\not n \end{matrix}\right.其中,y为n的最小质因数,并且n=i\cdot y dnφ(d)=n,φ(n)=dnμ(d)dn=dnμ(dn)

你可能感兴趣的:(数论)