poj 2407 Relatives
2013-04-29 15:48
351 查看
#include<stdio.h> #define INF 1000000 int s; int f[INF]; int prime[INF]; int phi[INF]; void init() { int i,j,k=0; for(i=2;i*i<=INF;i++) { for(j=i*i;j<INF;j=j+i) f[j]=1; } for(i=2;i<=INF;i++) if(f[i]==0) prime[k++]=i; //计算INF以下的所有欧拉函数 for(i=1;i<=INF;i++) phi[i]=i; for(i=2;i<=INF;i++) if(f[i]==0) for(j=i;j<=INF;j+=i) phi[j]=phi[j]/i*(i-1); //此处注意先/i再*(i-1),否则范围较大时会溢出 } int euler(int n) //求单个的欧拉函数 { int i,res=n; for(i=2;i*i<=n;i++) { if(n%i==0) { res=(res/i)*(i-1); while(n%i==0) n/=i; } } if(n!=1) res=(res/n)*(n-1); return res; } int main() { //init(); int n; while(scanf("%d",&n)!=EOF) { if(n==0) break; printf("%d\n",euler(n)); //printf("%d") } return 0; } //欧拉函数:求小于n的与n互质的个数 //欧兰函数公式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数
相关文章推荐
- POJ-2407 Relatives 欧拉phi函数
- POJ 2407 Relatives 欧拉函数(简单求函数值)
- POJ_2407_relatives
- POJ 2407 Relatives
- poj 2407 Relatives
- poj 2407——Relatives
- POJ 2407 Relatives
- POJ 2407 Relatives(欧拉函数)
- poj 2407 Relatives 【容斥原理基础题】
- 数论 - 欧拉函数模板题 --- poj 2407 : Relatives
- POJ 2407 Relatives
- POJ-2407-Relatives 解题报告
- 数学/欧拉函数/sgu 102 Coprimes/poj 2407 Relatives
- poj 2407 Relatives
- POJ_2407_Relatives(欧拉函数)
- 【POJ-2407】Relatives
- POJ 2407 Relatives 欧拉函数
- POJ 2407 Relatives
- POJ 2407 Relatives 解题报告(欧拉函数水题)
- 欧拉函数 POJ 2407 Relatives&&POJ 2478 Farey Sequence