欧拉函数的特殊性质

欧拉函数与莫比乌斯函数的关系

根据积性函数关系 (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 筛的思路:

杜教筛

[(oldsymbol f*oldsymbol {id})(n)=sum_{dmid n} (oldsymbol {id}cdot oldsymbol varphi)(d)cdot oldsymbol {id}({nover d})cdot 1=sum_{dmid n}dcdot oldsymbol varphi(d)cdot {nover d}cdot oldsymbol I({nover d})=ncdot (oldsymbol varphi*oldsymbol I)(n)=ncdot oldsymbol {id}(n)=n^2 ]

再利用 (displaystyle sum_{i=1}^ni={n(n+1)over 2},sum_{i=1}^ni^2={n(2n+1)(n+1)over 6}) 即可求解

min_25 筛

[oldsymbol f(p)=oldsymbol varphi(p)cdot oldsymbol {id}(p)=(p-1)cdot p=p^2-p=(oldsymbol {id}^2-oldsymbol {id})(p),pin Prime ]

原文地址:https://www.cnblogs.com/JustinRochester/p/13224145.html