欧拉函数,求互质;
来源:互联网 发布:美工主管岗位职责 编辑:程序博客网 时间:2024/06/06 08:51
欧拉函数 :
欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。
完全余数集合:
定义小于 n 且和 n 互质的数构成的集合为 Zn ,称呼这个集合为 n 的完全余数集合。 显然 |Zn| =φ(n) 。
有关性质:
对于素数 p ,φ(p) = p -1 。
对于两个不同素数 p, q ,它们的乘积 n = p * q 满足 φ(n) = (p -1) * (q -1) 。
这是因为 Zn = {1, 2, 3, ... , n - 1} - {p, 2p, ... , (q - 1) * p} - {q, 2q, ... , (p - 1) * q} , 则 φ(n) = (n - 1) - (q - 1) - (p - 1) = (p -1) * (q -1) =φ(p) * φ(q) 。
欧拉定理 :
对于互质的正整数 a 和 n ,有 aφ(n) ≡ 1 mod n 。
证明:( 1 ) 令 Zn = {x1, x2, ..., xφ(n)} , S = {a * x1 mod n, a * x2 mod n, ... , a * xφ(n) mod n} ,
则 Zn = S 。
① 因为 a 与 n 互质, xi (1 ≤ i ≤ φ(n)) 与 n 互质, 所以 a * xi 与 n 互质,所以 a * xi mod n ∈ Zn 。
② 若 i ≠ j , 那么 xi ≠ xj,且由 a, n互质可得 a * xi mod n ≠ a * xj mod n (消去律)。
( 2 ) aφ(n) * x1 * x2 *... * xφ(n) mod n ≡ (a * x1) * (a * x2) * ... * (a * xφ(n)) mod n ≡ (a * x1 mod n) * (a * x2 mod n) * ... * (a * xφ(n) mod n) mod n ≡ x1 * x2 * ... * xφ(n) mod n 对比等式的左右两端,因为 xi (1 ≤ i ≤ φ(n)) 与 n 互质,所以 aφ(n) ≡ 1 mod n (消去律)。注:消去律:如果 gcd(c,p) = 1 ,则 ac ≡ bc mod p ⇒ a ≡ b mod p 。费马定理 :若正整数 a 与素数 p 互质,则有 ap - 1 ≡ 1 mod p 。证明这个定理非常简单,由于 φ(p) = p -1,代入欧拉定理即可证明。
#include<iostream> #include<cstring> #include<cmath> using namespace std; int a[1500005]; int euler_phi(int x) //欧拉函数 { int n=x; int k=(int)sqrt(double(n)+0.5); int m=n; for(int i=2;i<=k;i++) { if(n%i==0) { m=m/i*(i-1); while(n%i==0) n/=i; } } if(n>1)m=m/n*(n-1); return m; } void phi_table() //打表,求出1500000中所有的数的欧拉函数值 { memset(a,0,sizeof(a));a[1]=1; for(int i=2;i<=1500000;i++) if(!a[i]) { for(int j=i;j<=1500000;j+=i) { if(!a[j])a[j]=j; a[j]=a[j]/i*(i-1); } } } int main() { int n;phi_table(); while(cin>>n) { cout<<euler_phi(n)<<endl; cout<<a[n]<<endl; } }
- 欧拉函数,求互质;
- Relatives(欧拉函数,求互质)
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
- 移动端html5手机网站字体单位font-size选择px还是rem
- linux下串口的开发之非阻塞异步读
- 制作项目文件目录表
- 多文件进行zip压缩
- 欧拉函数,求互质;
- 详解jquery插件中;(function ( $, window, document, undefined )的作用
- 对于手写签名生成图片储存和回显的实现
- bootstrap中的container类和container-fluid类的区别
- Mybatis使用typealias要注意类冲突的问题
- Java内部类实例:控制框架(e.g.温室控制系统)
- H5技术发展的那些事儿
- 虚拟化技术的介绍
- 系统登录界面代码实现--Java