Perfect Pth Powers解题报告

来源:互联网 发布:基金产品经理 知乎 编辑:程序博客网 时间:2024/05/12 18:39

Description

We say that x is a perfect square if, for some integer b, x = b2. Similarly, x is a perfect cube if, for some integer b, x = b3. More generally, x is a perfect pth power if, for some integer b, x = bp. Given an integer x you are to determine the largest p such that x is a perfect pth power.

Input

Each test case is given by a line of input containing x. The value of x will have magnitude at least 2 and be within the range of a (32-bit) int in C, C++, and Java. A line containing 0 follows the last test case.

Output

For each test case, output a line giving the largest integer p such that x is a perfect pth power.

Sample Input

171073741824250

Sample Output

1302
#include<stdio.h>#include<math.h>int main(){double n,b;long x,y;int i;while(scanf("%lf",&n)!=EOF){if(n==0)break;if(n>0){for(i=32;i>=0;i--){b=pow(n,1.0/i);x=b;    //类型转换为longy=x+1;  //if(b-x<=1e-12||y-b<=1e-12){printf("%d\n",i);break;}}}if(n<0){n=-n;  //if n《0,先转化为正数先,然后i 只能为奇数,查找i。for(i=31;i>=1;i-=2){b=pow(n,1.0/i);x=b;      //类型转换为long。y=x+1;    //if(b-x<=1e-12||y-b<=1e-12){printf("%d\n",i);break;}}}}return 0;}

原创粉丝点击