欧拉函数 模板题 POJ2407 Relatives
2012-09-27 17:55
351 查看
题目大意&&思路:φ(n)是积性函数,所以n=P1^k1*……*Pn^kN(素数因子分解)
所以:φ(n)=φ(P1^k1)*……*φ(Pn^kN)
而对于φ(P1^k1),原式等于:P1^k-P1^(k-1),即是(P1-1)*P1^(k-1);在此题目中,因子的次数不会大于31,所以直接POW函数就可以解决问题
所以:φ(n)=φ(P1^k1)*……*φ(Pn^kN)
而对于φ(P1^k1),原式等于:P1^k-P1^(k-1),即是(P1-1)*P1^(k-1);在此题目中,因子的次数不会大于31,所以直接POW函数就可以解决问题
AC program: #include<stdio.h> #include<iostream> #include<math.h> #include<string.h> #include<algorithm> using namespace std; typedef __int64 LL; int pp[100005]; int nn[100005]; int main() { LL n; while(cin>>n,n) { LL k=0; LL tmp=n; for(LL i=2;i*i<=tmp;) { if(n%i==0) { LL cnt=0; pp[k]=i; while(n%i==0) { n/=i; cnt++; } nn[k++]=cnt; } else i++; } if(n!=1) { pp[k]=n; nn[k++]=1;} LL sum=1; for(LL i=0;i<k;i++) { sum*=(pp[i]-1)*(int)( pow(pp[i]*1.0,(nn[i]-1)*1.0 ) ); } cout<<sum<<endl; } return 0;}
相关文章推荐
- POJ2407 Relatives 【欧拉函数模板】
- Relatives(poj2407)(求大数的欧拉函数模板题)
- 数论 - 欧拉函数模板题 --- poj 2407 : Relatives
- POJ2407 Relatives(欧拉函数)
- poj2407(欧拉函数-套模板)
- POJ2407---Relatives(求单个数的欧拉函数)
- POJ2407:Relatives(欧拉函数)
- POJ2407-Relatives(欧拉函数裸题)
- poj2407 Relatives 欧拉函数基本应用
- poj2407欧拉函数模板
- 【欧拉函数】 poj2407 Relatives(裸欧拉函数)
- POJ2407-Relatives-欧拉函数
- 数论 - 欧拉函数模板题 --- poj 2407 : Relatives
- POJ2407 Relatives(欧拉函数)
- poj 2407 Relatives(欧拉函数模板题)
- poj 2407 Relatives(欧拉函数模板)
- POJ2407 Relatives(欧拉函数)
- poj2407 Relatives ——欧拉函数入门题
- POJ-2407-Relatives(欧拉函数模板题)
- poj2407 Relatives 欧拉函数基本应用