欧拉函数
来源:互联网 发布:软件培训机构排行榜 编辑:程序博客网 时间:2024/05/19 23:11
对正整数n,欧拉函数是小于n的数中与n互质的数的数目
欧拉函数与组合数学中的计数原理和容斥原理有着密切的联系。
Euler函数表达通式:
其中 为x的所有素因子,x是不为0的整数。
euler(1)=1(唯一和1互质的数就是1本身)。
欧拉定理:对于互质的正整数a和n,有 (可用于求解逆元)
若m,n互质, ——积性函数的性质
同时,欧拉函数也能这样计算: 其中是一个素数.
因为除了的倍数其他数字均和互质。而的倍数有个,所以
当初学习欧拉函数时我隐隐觉得它和容斥原理有什么联系,现在明白了,计数原理能解释欧拉函数。
欧拉函数的等式:
由算术基本定理(正整数的唯一分解定理):
那么,在1——n内和n互质的数这样求解:先除减去能被一个素因子整除的数:
发现多减了,再加上两个素因子乘积计算结果:
再减去三个素因子的乘积计算结果:
......
整理得到:
它也就是:
实现代码:
由表达式得到:
int Euler(int n){ int ans=n,a=n; for(int i=2;i*i<=a;i++){ if(a%i==0){ ans=ans/i*(i-1); while(a%i==0){ a/=i; } } } if(a>1) ans=ans/a*(a-1); return ans;}
递推(筛法)求欧拉函数:
void Euler(int Max){ for(int i=1;i<Max;i++) phi[i]=i; for(int i=2;i<Max;i++) { if(phi[i]==i){ for(int j=i;j<Max;j+=i){ phi[j]=phi[j]/i*(i-1); } } }}
0 0
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- Burning Bridges-ZOJ1588(割边求解)
- 杭电1863 畅通工程
- Java读取十六进制数转化为图片
- 判断是否为回文数
- Multipliers codeforces -费马小定理
- 欧拉函数
- POJ-2346 Lucky tickets(线性DP)
- caffe添加PrecisionRecallLosslayer层(一)
- bzoj1858 序列操作 线段树打标记
- #Objective - C - UI-design - 第三天 -UIKit框架-UIKit-视图控制器-注意:只有开关灯游戏内容
- SSH2框架搭建 和 配置文件详解
- Linux无密登陆
- Eclipse4.4安装旧版本插件报错 Failed to prepare partial IU
- javascript类型系统之Array