欧拉函数
来源:互联网 发布:如何做淘宝链接 编辑:程序博客网 时间:2024/06/10 02:00
欧拉函数在数论中指的是,对于正整数N,小于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(n)。
以下是欧拉函数的模板
1,直接求φ(n)
int Euler(int n){ int ret=n; for(int i=2;i<=sqrt(n);i++) if(n%i==0) { ret=ret/i*(i-1);//先进行除法防止溢出(ret=ret*(1-1/p(i))) while(n%i==0) n/=i; } if(n>1) ret=ret/n*(n-1); return ret;}
2,通过素数表直接求φ(n)
int euler(int n){int res = n;for (int i = 1; i<=primesize&&prime[i] * prime[i] <= n; i++){if (n%prime[i] == 0){res = res / prime[i] * (prime[i] - 1);while (n%prime[i] == 0)n /= prime[i];}}if (n>1)res = res / n*(n - 1);return res;}
3,对欧拉函数用筛数法打表
#define size 1000001int euler[size];void Init(){ memset(euler,0,sizeof(euler)); euler[1]=1; for(int i=2;i<size;i++) if(!euler[i]) for(int j=i;j<size;j+=i) { if(!euler[j]) euler[j]=j; euler[j]=euler[j]/i*(i-1);//先进行除法防止中间数据的溢出 }}
阅读全文
0 0
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- Java开发者需要了解哪些常见的开发工具
- 1053. Path of Equal Weight 解析
- C++类的静态变量成员和静态成员函数的使用
- 【算法导论学习笔记】最大子数组问题
- 调整打印机适应套打的边距
- 欧拉函数
- text-align无法实现居中
- C++函数返回引用
- 安装imagej
- Shell 流程控制~09
- HDU 5810Balls and Boxes【二项分布】
- 数据库查询优化之索引的使用详解
- Android开发之EventBus讲解
- 【软件安全】cwe-89 SQL Injection(四)