欧拉函数
来源:互联网 发布:查看公司屏蔽的端口 编辑:程序博客网 时间:2024/04/29 09:23
在数论中,对于一整数n来说,欧拉函数是指:1~n-1中与n互质的数的个数。又称φ函数、欧拉商数等。
例如φ(8)=4,因为1,3,5,7均和8互质。
从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。
φ(1)=1(唯一和1互质的数就是1本身)。
若n是质数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质。
欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)。
证明:设A, B, C是跟m, n, mn互质的数的集,据中国剩余定理,A*B和C可建立一一对应的关系。因此φ(n)的值使用算术基本定理便知,
若n= ∏p^(α(下标p))
p|n
则φ(n)=∏(p-1)p^(α(下标p)-1)=n∏(1-1/p)
p|n p|n
例如φ(72)=φ(2^3×3^2)=(2-1)2^(3-1)×(3-1)3^(2-1)=24
与欧拉定理、费马小定理的关系
对任何两个互质的正整数a, m, m>=2有
a^φ(m)≡1(mod m)
即欧拉定理
当m是质数p时,此式则为:
a^(p-1)≡1(mod m)
即费马小定理。
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int Euler(int n)
{
int i;
int result;
result=n;
for(i=2; n!=1; i++)
{
if(n%i)
continue;
else
result=result/i*(i-1); //(p-1)*p^(k-1)
while(n%i==0)
n/=i;
}
return result;
}
int main()
{
int n;
while(scanf("%d",&n) && n)
{
printf("%d\n",Euler(n));
}
return 0;
}
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- linux系统mem_map的定义和赋值(mips架构)
- include指令(静态和动态),到底是在服务器还是在客户端?
- 字符编码,解码
- 第三期电子国债开卖 年收益率最高可达6.15%
- Nginx下配置SSL安全协议
- 欧拉函数
- 浮点数在内存上的表示
- P85--94 notes
- 更新版本的 转化PDF
- Ext 进程条
- ubuntu9.10下安装配置NFS服务
- java 日期选择框 应用例子
- Notification固有的扩展示例
- sql解释执行顺序