欧拉函数原理
一、欧拉函数的引入
请思考以下问题:
任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?
(比如,在1到8之中,有多少个数与8构成互质关系?)
计算这个值的方法就叫做欧拉函数,以φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。
二、欧拉函数的定义
定义: 欧拉函数φ(n)是一个定义在正整数集上得函数,φ(n)的值等于序列0,1,2,…,n-1中与n互素的数的个数。
特别的,φ(1)=1(和1互质的数(小于等于1)就是1本身)。
三、欧拉函数的性质
当p是素数时,φ§=p-1。
欧拉函数是积性函数,但不是完全积性函数。
当且只当n可以分解成两个互质的整数之积,n = p1 × p2,则φ(n) = φ(p1p2) = φ(p1)φ(p2)。
特别的,对于两个素数p,q, φ(pq)=(p-1)(q-1)。(RSA算法应用)
当n>2时,φ(n)都是偶数,也即φ(n)≡0(mod2)。
简单证明,因为若n是质数p的k次幂,φ(n)=pk-pk-1=(p-1)pk-1
当p为2时,pk-1必为偶数;
当p>2时,(p-1)必为偶数。
四、欧拉函数的计算方法
(一)解题思路
对于一个正整数N的素数幂分解N=P1q1P2q2…Pnqn,其中,Pi为素数(1≤i≤n)。
根据第二条性质得到:
φ(N)=φ(P1q1P2q2…Pnqn)=φ(P1q)φ(P2q2)…φ(Pnqn)
注意:每种质因数只有一个。
若n是质数p的k次幂,φ(n)=pk-pk-1=(p-1)pk-1,因为除了p的倍数外,其他数都跟n互质。
简单证明:φ(n)=pk-pk-1=(p-1)pk-1
证明:
由φ(n)的定义值,φ(pk)等于从pk减去在1,…,pk中与p不互素的数的个数。因为p是素数,故φ(pk)等于从pk减去在1,…,pk中被p整除的数的个数。而在
1,…,p,p+1,…,2p,…,pa-1 * p
中,易知p的倍数共有pa-1个,即得φ(n)=pk-pk-1=(p-1)pk-1
(二)编程计算
利用欧拉函数和它本身不同质因数的关系,用筛法计算出某个范围内所有数的欧拉函数值。
欧拉函数和它本身不同质因数的关系:
欧拉函数: φ(N)=N{∏p|N}(1-1/p)
亦即:
φ ( N ) = N ∗ ∏ ( 1 − 1 / p ) ( P 是 数 N 的 质 因 数 ) φ(N)=N* ∏(1-1/p)(P是数N的质因数)
1
2
3
φ(N)=N∗∏(1−1/p)(P是数N的质因数),如:
φ(10)=10×(1-1/2)×(1-1/5)=4; 10的质因数为2,5;
φ(30)=30×(1-1/2)×(1-1/3)×(1-1/5)=8; 30的质因数为2,3,5;
φ(49)=49×(1-1/7)=42。 49的质因数为7。
1
2
3
五、欧拉函数扩展
设n≥1,则有∑φ(n)=n,其中d|n,d>0.
六、欧拉函数应用
————————————————
版权声明:本文为CSDN博主「容艾假」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46627433/article/details/123489489