歐拉定理概述


歐拉定理

【前言】

歐拉定理挺好玩的。但是一般就用來優化模算術下的乘方運算,沒啥意思。不過它的性質比較有意思,在很多模算術帶乘方的玩意里有奇效。更何況歐拉函數其本身就比較神奇。

前置技能:容斥,數論基礎,同余基礎。

【歐拉函數】

歐拉函數\(\varphi(n)\)表示\(1\sim n\)中與\(n\)互質的數的個數。

給出數學定義如下

\[\varphi(n)=\sum_{i=1}^n[gcd(i,n)==1] \]

其中\([x]\)表示艾弗森約定。

歐拉函數是積性函數,即對於\(\forall n,p\),若\(gcd(n,p)=1\),則有\(\varphi(np)=\varphi(n)*\varphi(p)\)


顯然,對於任意質數\(p\),有

\[\varphi(p)=p-1 \]


而對於任意整數,不難給出一個計算公式如下

若算數基本定理即\(n=p_1^{c_1}p_2^{c_2}\dots p_m^{c_m}\)成立,則有

\[\varphi(n)=n*\prod_{i=1}^m(1-\frac{1}{p_i}) \]

證明:

\(a,b\)\(n\)互質,則滿足\(a \mid n\)\(a\)\(\large \frac{n}{a}\)個,滿足\(b \mid n\)\(b\)\(\large\frac{n}{b}\)個。根據容斥原理,\(1\sim n\)中不能被\(a,b\)中任意一個數整除的數共有\(\large n-(\frac{n}{a}+\frac{n}{b})+\frac{n}{ab}\)個,即\(\large n*(1-\frac{1}{a})*(1-\frac{1}{b})\)個。(有木有二項式定理的影子?)

推廣至一般,對於\(n\)的所有質因數,我們使用容斥定理即可得到歐拉函數。


代碼實現

根據以上分析,不難想到在分解質因數時\(O(\sqrt{n})\)\(\varphi(n)\)

inline int phi(int n)
{
	int ans=n;
	for(int i=2;i<=sqrt(n);++i){
		if(n%i==0){
			ans=ans/i*(i-1);
			while(n%i==0) n/=i;
		}
	}
	if(n>1) ans=ans/n*(n-1);
	return ans;
}

利用歐拉篩,\(O(n)\)\(1\sim n\)的所有\(\varphi\)函數的值

inline void init(int n)
{
	phi[1]=1;
	for(int i=2;i<=n;++i){
		if(!v[i]){phi[i]=i-1;p[++cnt]=i;}
		for(int j=1;j<=cnt;++j){
			if(p[j]>n/i) break;
			v[i*p[j]]=1;
			if(i%p[j]==0){
				phi[i*p[j]]=phi[i]*p[j];break;
			}
			phi[i*p[j]]=phi[i]*(p[j]-1);
		}
	}
}

證明:

根據算數基本定理\(n=p_1^{c_1}p_2^{c_2}\dots p_m^{c_m}\)

\(p_1\)\(n\)的最小質因子,則在歐拉篩過程中,存在\(n'\),使得\(n'=\frac{n}{p_1}\),即\(n\)是由\(n'*p_1\)篩出來的。

對於\(n' ~mod ~p_1=0\),顯然有\(c_1>1\),那么\(n'\)含有\(n\)的所有質因子,即

\[\begin{align}\varphi(n)&=n*\prod_{i=1}^m(1-\frac{1}{p_i})\\&=n'*p_1*\prod_{i=1}^m(1-\frac{1}{p_i})\\&=p_1*\varphi(n')\end{align} \]

對於\(n'~mod~p\not= 0\),顯然有\(c_1=1\),那么\(n'\)不包含\(p_1\),故\(gcd(n',p_1)=1\)

又由於\(\varphi(n)\)為積性函數,則有

\[\varphi(n)=\varphi(p_1)*\varphi(n')=(p_1-1)*\varphi(n') \]



【歐拉定理】

\(a,p\)互質,則有

\[a^{\varphi(p)}\equiv 1 \pmod p \]

證明:

\(\{\overline {x_1} ,\overline {x_2},\dots ,\overline {x_{\psi(p)}}\}\)\(p\)的簡化剩余系,即\(\varphi(p)\)個與\(p\)互質的數表示的同余類的集合。

若存在一組\(x_i,x_j(x_i\not= x_j)\),使得\(ax_i\equiv ax_j \pmod p\),即\(a(x_i-x_j)\equiv 0 \pmod p\),由\(a\)\(p\)互質得到\(x_i\equiv x_j \pmod p\)。那么,由於該簡化剩余系關於模\(p\)乘法封閉,可知\(\{\overline {x_1} ,\overline {x_2},\dots ,\overline {x_{\varphi(p)}}\}\)中任意元素都滿足上述性質。則有\({\{\overline {ax_1} ,\overline {ax_2},\dots ,\overline {ax_{\varphi(p)}}\}}\)\(p\)的一個簡化剩余系。

由於\(x_1,x_2\dots x_{\varphi(p)}\)都與\(p\)互質,得到

\[{x_1} {x_2}\dots {x_{\varphi(p)}} \equiv {ax_1} {ax_2}\dots {ax_{\varphi(p)}} \pmod p \]

\[{x_1} {x_2}\dots {x_{\varphi(p)}} \equiv a^{\varphi(p)}( {x_1}{x_2}\dots {x_{\varphi(p)}}) \pmod p\\a^{\varphi(p)} \equiv 1 \pmod p \]


推論

\[a^{b}=a^{b ~ mod ~ \varphi(p)} \pmod p \]

證明:

\(a,p\)互質時,設\(b=k*\varphi(p)+r\),則有\(r=b \mod \varphi(p)\)

\[a^b=a^{k*{\varphi(p)+r}}=(a^{\varphi(p)})^k*a^r=1^k*a^{b ~mod~ \varphi(p)}=a^{b ~mod~ \varphi(p)} \]


而當\(a,p\)不一定互質時,若\(b>=\varphi(p)\),則有\(a^{b}=a^{b ~ mod ~ \varphi(p)+\varphi(p)} \pmod p\)

證明:

由抽屜原理,對於任意\(x~mod ~p,x>p\),至多有\(x+1\)種余數。即\(a^b ~mod ~p\)存在指數循環節,其循環節長度為\(\varphi(p)\),該式可寫作

\[a^b=a^0a^1\cdots a^{\varphi(p)} a^{\varphi(p)+1}\cdots a^{\varphi(p)+\varphi(p)}\cdots \pmod p \]


用這個推論即可解決\(a^b~mod ~p\),當\(a,b\)都很大的情況。

板子:P5091


似乎很多人稱之為歐拉反演?

對於任意正整數\(n\),有

\[\sum_{d\mid n}\varphi(d)=n \]

證明:

由於對於一個質數\(p\),有

\[\varphi(p)=p-1 \]

\(kp\)不互質的數為\(1,p,2p,3p,4p,\cdots ,kp\),顯然有\(k+1\)個,那么根據\(\varphi\)定義,有

\[\varphi(kp)=k(p-1) \]

(可以從這里看出\(\varphi(n)\)為積性函數)

而對於\(p^k\),與它不互質的數為\(1,p,p^2,p^3,\cdots,p^k\),於是

\[\varphi(p^k)=p^{k-1}(p-1) \]

那么

\[\begin{align} \sum_{d\mid p^k}\varphi(d) &=1+\varphi(p)+\varphi(p^2)+\cdots+\varphi(p^k)\\ &=1+(p-1)+p(p-1)+p^2(p-1)+\cdots+p^{k-1}(p-1)\\ &=p^k \end{align} \]

\(\varphi(n)\)為積性函數,且\(p^k\)與除\(p^{k'}\)外的所有數互質,得到\(\sum_{d\mid n}\varphi(d)=n\)

證畢。


用這個推論可以解決一些比較神奇的數論題。


\(\forall n>1,1\sim n\)中所有互質的數的和為\(n*\varphi(n)/2\)

待更,雖然基本上沒啥了,后續會更新一些題目。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM