欧拉函数
定义
在数论,对正整数n,欧拉函数是不超过n的正整数中与n互质的数的数目(φ(1)=1)。
通式及其性质
通式:φ(x)=x∏(1−1pi)
其中p1,p2,…,pn为x的所有质因数,x≥1
若x是
若(m,n)=1,则φ(mn)=φ(m)φ(n)(性质2)
当x为奇数时,φ(2x)=φ(x)(性质3)
这些都比较显然吧。。。
通式的证明
若x=∏p∣x,1≤p<xpap,
则φ(x)=∏(p−1)pap−1=x∏(1−1p)(用到了1性质)
貌似就证完了。。。
实现
可以先写个筛法把素数全筛出来
如果求单个x的欧拉函数,那么只需直接利用公式计算即可
而对于1~n的欧拉函数,我们可以利用它的性质进行递推:
刚开始令φ(i)=i
若i=φ(i),那么说明i为质数,
若i为偶数,则根据性质3可得
这可以和筛法一起实现。
欧拉定理
定理
在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则aφ(n)≡1(mod n)
证明
设φ(n)=k
设x1,x2,…,xk为与n互质的数
设
那么
①m1~mk模n都不同余。
假设ami≡amj(mod n),则因为(a,n)=1,所以mi≡mj(mod n),则它们两个必然有一个是合数,矛盾。
②m1~mk都与n互质。
假设余数与n有公因子r,那么a∗xi=pn+qr=r(……),a*xi与n不互质,而这是不可能的。
根据①和②,可知m1m2…mk≡x1x2…xk(mod n)
即akx1x2…xk≡x1x2…xk(mod n)
因为(x1x2…xk)|n
所以ak≡1(mod n)
即aφ(n)≡1(mod n)
证毕
应用
欧拉定理可以用来解乘法逆元,同时,费马小定理是欧拉定理的一个特殊情况。因此费马小定理能干的基本上欧拉定理都能干。除此之外,欧拉定理还可以应用于几何方面。