在
数论,对
正整数n,
欧拉函数是小于n的正整数中与n
互质的数的数目(φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’so totient function),它又称为Euler’s totient function、
φ函数、欧拉
商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和
拉格朗日定理构成了
欧拉定理的证明。
定 义
欧拉函数简介
通式:
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D344/sign=da2dc03b1a950a7b713548c03ed1625c/6a600c338744ebf88c69ff32def9d72a6059a7a7.jpg)
其中p1, p2……pn为x的所有质因数,x是不为0的整数。
φ(1)=1(唯一和1
互质的数(小于等于1)就是1本身)。
注意:每种质因数只一个。 比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4
若n是质数p的k次幂,
,因为除了p的倍数外,其他数都跟n互质。
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D211/sign=8a21a419ac18972ba73a07cbd7cd7b9d/f9198618367adab410da834e8cd4b31c8701e4b1.jpg)
设n为正整数,以 φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值
φ:N→N,n→φ(n)称为欧拉函数。
欧拉函数是
积性函数——若m,n互质,
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D140/sign=daa516337cec54e745ec1e1a89399bfd/bd3eb13533fa828b5d8406eefa1f4134970a5a1c.jpg)
特殊性质:当n为奇数时,
, 证明与上述类似。
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D96/sign=52a5c55ef1246b607f0ebe72eaf8e29d/8cb1cb134954092331f8f8739558d109b3de492e.jpg)
若n为质数则
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D85/sign=31100df17bd98d1072d40134203fd0be/a5c27d1ed21b0ef404180353dac451da80cb3ece.jpg)
欧拉函数证明
编辑
若
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D112/sign=08fa470ba8c3793179688228d9c4b784/0bd162d9f2d3572c61d519d18d13632762d0c38c.jpg)
则
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D271/sign=2223df5052fbb2fb302b5f157e4b2043/11385343fbf2b211e8de5243cd8065380dd78ecf.jpg)
例如
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D364/sign=9845b8d029738bd4c021b437958a876c/6c224f4a20a446234b06626f9f22720e0df3d7eb.jpg)
与欧拉定理、
费马小定理的关系
对任何两个互质的正整数a, m(m>=2)有
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D122/sign=275288036009c93d03f20af5ad3df8bb/d833c895d143ad4b3f5684cd85025aafa40f0647.jpg)
即欧拉定理
当m是质数p时,此式则为:
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D116/sign=39fb85b64010b912bbc1f2fff5fcfcb5/83025aafa40f4bfb0f075c59044f78f0f63618ec.jpg)
即费马小定理。
欧拉函数编程实现
编辑
利用欧拉函数和它本身不同质因数的关系,用
筛法计算出某个范围内所有数的欧拉函数值。
欧拉函数和它本身不同质因数的关系:
欧拉函数ψ(N)=N{∏p|N}(1-1/p)
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D153/sign=6ffd676c08b30f24319ae806fb94d192/8ad4b31c8701a18b93a2de42992f07082838fe76.jpg)
亦即:
(P是数N的
质因数)
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D191/sign=8a3c0d0c5b6034a82de2bc88fa1349d9/b812c8fcc3cec3fdef1a2378d188d43f87942792.jpg)
如:
ψ(10)=10×(1-1/2)×(1-1/5)=4;
ψ(30)=30×(1-1/2)×(1-1/3)×(1-1/5)=8;
ψ(49)=49×(1-1/7)=
=42。
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D103/sign=92d8f1ea08f79052eb1f433e3ff2d738/cb8065380cd7912325a1168dac345982b3b78082.jpg)
欧拉函数C++版
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/*线性筛O(n)时间复杂度内筛出maxn内欧拉函数值*/
|