UVa 10622 - Perfect P-th Powers(对数+快速幂)

来源:互联网 发布:数据化决策 编辑:程序博客网 时间:2024/06/06 02:54

枚举50000以内的数,对数,利用快速幂求值验证。

#include<cstdio>#include<cmath>using namespace std;int fexp(int a,int b){    int cur=1,t=a;    while(b){        if(b&1) cur*=t;        t*=t;        b>>=1;    }    return cur;}int find(int n){    for(int i=2;i<50000;++i){        int k=(log10(fabs(n))/log10(i)+0.01);        if(fexp(i,k)==n) return k;        if(fexp(-i,k)==n) return k;    }    return 1;}int main(){    int n;    while(~scanf("%d",&n)&&n)        printf("%d\n",find(n));    return 0;}
0 0
原创粉丝点击