版权声明:转载请声明出处,谢谢配合。 https://blog.csdn.net/zxyoi_dreamer/article/details/82929466
网上现在讲欧拉定理证明的文章好少啊,于是博主就在学习之后萌发了写一篇证明的想法,供大家参考。其实主要是自己找资料找得太辛苦,想为后来人节约一点时间罢了。
欧拉函数:
记为
ϕ(n)或
φ(n),程序中一般写作
phi[n],读法为
fai,表示小于
n且与
n互质的数的个数。形式化一点的描述为
ϕ(n)=i=1∑n[gcd(i,n)==1]
其中
[]符号表示若其中表达式为真,则这一项的值为1,否则为0。
不过这个符号
φ更多用作推式子时候的变量而不是函数名
欧拉定理:
一般的欧拉定理叙述为:对于
∀a,m,若
gcd(a,m)=1,则
∀n,an≡anmodϕ(m)(mod m)
证明:
将
1至
m中所有与
m互质的数列出,记为
x1,x2...xϕ(m)。
每一项乘上
a,形成的数列是
ax1,ax2...axϕ(m)。
可以证明,在模
m意义下,这两个数列是等价的,即它们可以构成一一对应,因为
gcd(a,m)==1。(证明很简单,这里就不详讲了)
那么我们将两个数列分别相乘,得到
i=1∏ϕ(m)xi≡i=1∏ϕ(m)axi(mod m)
即
i=1∏ϕ(m)xi≡aϕ(m)i=1∏ϕ(m)xi(mod m)
那么就有
aϕ(m)≡1(mod m)
得证。
广义欧拉定理:
广义欧拉定理的叙述为:对于
∀a,m,若
gcd(a,m)̸=1,则有
an≡an mod ϕ(m)(mod m),(n<ϕ(m))
an≡an mod ϕ(m)+ϕ(m)(mod m),(otherwise)
我必须承认,第一句是废话,但是定理的叙述里面一直都有这句,本着严谨的态度,我还是把它搬上来了。。。(我自己都觉得无语)。
其实思维敏锐的读者也会发现,欧拉定理也满足广义欧拉定理,所以
gcd(a,m)̸=1这个条件也可以去掉。
接下来我们试着证明一下第二条。
an≡an mod ϕ(m)+ϕ(m)(mod m)
为了方便叙述,我们给几个定理及定义:
将
a的0次,1次,…,
b次幂模
m的结果排成一个序列,前
r个数(
a0到
ar−1)互不相同,从第
r个数开始,每
s个数就循环一次。
可以用鸽巢原理证明,这样的
r和
s总是存在的。
我们称
r为a的幂次模
m的循环起始点,
s为循环长度。注意
r可能为0,但
s一定不为0。
开始证明:
1.当
a为素数。
显然
m=arm′,则
gcd(a,m′)=1,所以我们有
aϕ(m′)≡1(mod m′)又由于
gcd(ar,m′)=1,所以
ϕ(m′)∣ϕ(m),所以
aϕ(m)≡1(mod m′)
即
aϕ(m)=km′+1两边同时乘以
ar,得
ar+ϕ(m)=km+ar,because m=arm′
所以
ar≡ar+s(mod m),这里
s=ϕ(m),其实到这里证明已经快要接近尾声了,有兴趣的读者可以自己手推一下。
又由于
m=arm′,所以
ϕ(m)≥ϕ(pr)=pr−1(p−1)≥r
所以
ar≡ar+ϕ(m)≡ar mod ϕ(m)+ϕ(m)(mod m)
所以
ab≡ar+(b−r) mod ϕ(m)
≡ar mod ϕ(m)+ϕ(m)+(b−r) mod ϕ(m)
≡aϕ(m)+b mod ϕ(m)(mod mod m)
即
ab≡ab mod ϕ(m)+ϕ(m)(mod m)
第一情况得证。
这种情况证明出来了,马上我们的证明就要完成了。
2.
a是质数
p的整数次幂
令
a=pk。
显然仍然有
ar′≡ar′+s′(mod m)其中
s′=ϕ(m)。
由于对于质数我们有
pr≡pr+s(mod m)而将
m中的质因子
p除去后的
m′,我们有
ps≡1(mod m′)。所以
ps∗k/gcd(s,k)≡1(mod m′)。
当
ps′k≡1(mod m′)时,我们有
s′=s/gcd(s,k)。
此时
s′∣s∣ϕ(m),且
r′=⌈kr⌉≤r≤ϕ(m)。
由
r′,s′与
ϕ(m)的关系,依然可以得到
ab≡ab mod ϕ(m)+ϕ(m)(mod m)
3.
a是合数
考虑
a是
t个素数的整数次幂的积的情况。
设
a=∏i=1t,
ai=piki,
ai在模
m意义下的循环节长度为
si
则
a的循环长度
s必有
s∣lcm(si),而
si∣ϕ(m),所以
lcm(si)∣ϕ(m),所以
s∣ϕ(m)
并且我们可以推出
a在循环前的长度
r=max⌈kiri⌉≤max{ri}≤ϕ(m)。
所以,当
a是合数时,我们仍然有
ab≡ab mod ϕ(m)+ϕ(m)(mod m)
广义欧拉定理得证
以上就是关于欧拉定理内容及证明的叙述,欧拉函数的更多性质我会写在积性函数的总结里面。