欧拉函数与莫比乌斯函数的关系
根据积性函数关系 (oldsymbol varphi=oldsymbol mu*oldsymbol {id}) 得到
(displaystyle oldsymbol varphi(n)=sum_{dmid n}oldsymbol mu(d)cdot({nover d})=ncdotsum_{dmid n}{oldsymbol mu(d)over d})
故得出推论 (displaystyle {oldsymbol varphi(n)over n}=sum_{dmid n}{oldsymbol mu(d)over d})
或简记为 (oldsymbol varphicdot oldsymbol{id}^{-1}=(oldsymbol mucdot oldsymbol {id}^{-1})*oldsymbol I)
互质数和
设小于等于 (n) 的正整数中,与 (n) 互质的数的和为 (s(n))
不难列出关系式 (displaystyle s(n)=sum_{i=1}^ni[gcd(i,n)=1])
由莫比乌斯反演可得
(displaystyle s(n)=sum_{i=1}^ni[gcd(i,n)=1]=sum_{i=1}^nisum_{dmid gcd(i,n)}oldsymbol mu(d)=sum_{dmid n}oldsymbol mu(d)sum_{i=1}^ni[dmid i]=sum_{dmid n}oldsymbol mu(d)sum_{i=1}^{nover d}id[1mid i]=sum_{dmid n}oldsymbol mu(d)dsum_{i=1}^{nover d}i)
由等差数列求和公式可得 (displaystyle sum_{i=1}^ni={n(n+1)over 2})
故代入可得 (displaystyle s(n)=sum_{dmid n}oldsymbol mu(d)d{({nover d})cdot ({nover d}+1)over 2}={nover 2}cdot [sum_{dmid n}oldsymbol mu(d)cdot ({nover d})+sum_{dmid n}oldsymbolmu(d)]={nover 2}cdot [(oldsymbol mu*oldsymbol {id})(n)+(oldsymbol mu*oldsymbol I)(n)])
代入 (oldsymbol mu*oldsymbol {id}=oldsymbol varphi,oldsymbol mu*oldsymbol I=oldsymbol varepsilon) 得 (displaystyle s(n)={n(oldsymbol varphi+oldsymbol varepsilon)(n)over 2})
一般而言,考虑到 (oldsymbol varepsilon(n)=[n=1]= egin{cases} 1,n=1 \ \ 0,n eq 1 end{cases})
故代入 (s(n)) 得 (s(n)= egin{cases} {1cdot(1+1)over 2}=1,n=1 \ \ {ncdot oldsymbol varphi(n)+ncdot 0over 2}={ncdot oldsymbol varphi(n)over 2},n eq 1 end{cases})
(s(n)) 的快速求法
由于 (s(n)) 本身不具备积性,故在 (n) 较大时无法直接求解
但考虑到 (displaystyle s(n)={n(oldsymbol varphi+oldsymbol varepsilon)(n)over 2}) 即 (displaystyle s={oldsymbol {id}cdot(oldsymbol varphi+oldsymbol varepsilon)over 2})
故 (2s=oldsymbol {id}cdot(oldsymbol varphi+oldsymbol varepsilon)=oldsymbol {id}cdotoldsymbol varphi+oldsymbol {id}cdot oldsymbol varepsilon)
同样考虑到 ((oldsymbol {id}cdot oldsymbol varepsilon)(n)=ncdot[n=1]= egin{cases} 1cdot 1=1,n=1 \ \ ncdot 0=0,n eq 1 end{cases}=oldsymbol varepsilon(n))
代入即可移项得 (2s-oldsymbol varepsilon=oldsymbol {id}cdotoldsymbol varphi)
求解 (s) 的前缀和只需求解 (oldsymbol f=oldsymbol {id}cdotoldsymbol varphi) 的前缀和 (F),再利用公式 (s={oldsymbol f+oldsymbol varepsilonover 2}) 即可求出 (s) 的前缀和 (S={F+1over 2})
已知前缀和后,利用前缀和的差分即可求出 (s)
而至于求解 (oldsymbol f) 的前缀和 (F),这里提供用于杜教筛与 min_25 筛的思路:
杜教筛
再利用 (displaystyle sum_{i=1}^ni={n(n+1)over 2},sum_{i=1}^ni^2={n(2n+1)(n+1)over 6}) 即可求解
min_25 筛