欧拉函数
来源:互联网 发布:js cookie大小 编辑:程序博客网 时间:2024/06/01 07:29
欧拉函数:
对正整数n,欧拉函数是小于n的数中与n互质的数的数目。
φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数
10=2*5,30=2*3*5,49=72.
φ(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
定理:
1.若n是质数p的k次幂,φ(n) = pk-p(k-1) =(p-1)p(k-1),因为除了p的倍数外,其他数都跟n互质。
2.若n为素数,φ(n) = n - 1;
3.当n为奇数时,φ(2n)=φ(n)。
4.欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)。
5.欧拉定理:若n,a为正整数,且n,a互质,则:a^φ(n)%n=1,φ(n) = n-1
int eular(int n)//计算φ(n) { int m=sqrt(n+0.5); int ans=n; for(int i=2;i<=m;i++) if(n%i==0) { ans=ans/i*(i-1); while(n%i==0) n=n/i; } if(n>1) ans=ans/n*(n-1);return ans;}
用筛选法求欧拉函数数组:
int eular[1000005];void eular_table(int n){ memset(eular,0,sizeof(eular)); eular[1]=1; for(int i=2;i<=n;i++) if(!eular[i]) for(int j=i;j<=n;j+=i) { if(!eular[j]) eular[j]=j; eular[j]=eular[j]/i*(i-1); }}
1 0
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- 在cmd中自定义命令 - Alias - 为命令设置别名,自动加载永不消失 - 启动cmd时自动加载
- Java 实现线程死锁
- [PHP实例] PHP获得计算机的唯一标识[cpu,网卡]
- 内存泄露与内存溢出
- 查看 Linux 各种信息
- 欧拉函数
- Effective C++ 部分读书笔记
- 选择排序
- Hbuilder支持jquery、zepto、angular、ext、dojo 等js框架的提示吗
- HDU 2612 Find a way (广搜,队列)
- 各种排序算法
- activeMQ Mysql静态话
- iTunes connect 上传app遇到的问题 联系官方大全
- linux文件传输命令:SCP用法