#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
long long x;
int main(){
while (scanf("%lld", &x) && x){
int f = 0, f2 = 0;
if(x < 0){
x = -x;
f = 1;
}
long long n = 32;
while(n > 1){
--n;
int a = (int)(pow((double)x, (1.0 / n))+ 0.5);
if(pow((double)a, n) == x){
if(f && n % 2 == 0)continue;//若x是负数, 则必须是奇数次方才会得到负数
printf("%lld\n",n);
f2 = 1;
break;
}
}
if(f2 == 0){
printf("1\n");
}
}
return 0;
}
ZOJ 2124 Perfect Pth Powers
最新推荐文章于 2021-02-17 13:26:15 发布
