poj 1730 Perfect Pth Powers
Perfect Pth Powers
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 14097 | Accepted: 3192 |
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
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> #include<set> #include<map> #include<cstring> #include<vector> using namespace std; int prime[40000],cnt=0; bool hash[200024]; int pow( int a, int b ) { int sum = 1; while( b-- ) sum *= a; return sum; } int main( ) { int num; while( scanf( "%d",&num ),num ) { int i = 0,t=1; if( num < 0 ) t =-1; for( i = 31 ; i > 1 ; i -- ) { int tmp=(int)( pow (num*1.0*t,1.0/i )+1.0e-5)*t; if(pow(tmp,i)==num) break; } printf( "%d\n",i ); } //system( "pause" ); return 0; }