UVA 10622 Perfect P-th Powers
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 10622 Perfect P-th Powers相关的知识,希望对你有一定的参考价值。
https://vjudge.net/problem/UVA-10622
将n分解质因数,指数的gcd就是答案
如果n是负数,将答案除2至奇数
原理:(a*b)^p=a^p*b^p
#include<cmath> #include<cstdio> #include<algorithm> #define N 65550 using namespace std; int gcd(int a,int b) { return !b ? a : gcd(b,a%b); } int main() { int m,sum,ans; long long n,nn; while(scanf("%lld",&nn)!=EOF) { if(!nn) return 0; n=abs(nn); m=sqrt(n); ans=0; for(int i=2;i<=m;i++) { sum=0; if(n%i==0) while(n%i==0) sum++,n/=i; ans=gcd(ans,sum); } if(!ans) { printf("1\n"); continue; } if(nn<0) while(!(ans&1)) ans>>=1; printf("%d\n",ans); } }
以上是关于UVA 10622 Perfect P-th Powers的主要内容,如果未能解决你的问题,请参考以下文章
Perfect Service UVA - 1218(树形dp)