POJ 1730 Perfect Pth Powers
Perfect Pth Powers
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 17685 | Accepted: 4068 |
Description
![](http://poj.org/images/1730_1.jpg)
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
17 1073741824 25 0
Sample Output
1 30 2
Source
#include<stdio.h> #include<math.h> int main() { int n; while(~scanf("%d",&n) && n) { if(n > 0) { for(int i = 31; i >= 1; i--) { int t = (int)(pow(n*1.0,1.0/i) + 0.1);//先开最大次方 int x = (int)(pow(t*1.0,1.0*i) + 0.1); if(n == x)//判断重新求的数与原数相等就是完美次数 { printf("%d\n",i); break; } } } else { n = -n;//考虑负数的情况 for(int i = 31; i >= 1; i-=2) { int t = (int)(pow(n*1.0,1.0/i) + 0.1); int x = (int)(pow(t*1.0,1.0*i) + 0.1); if(n == x) { printf("%d\n",i); break; } } } } return 0; }
http://blog.csdn.net/u013647282/article/details/37816089
大神做的
彼时当年少,莫负好时光。