poj 1730 Perfect Pth Powers
Perfect Pth Powers
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 14097 | Accepted: 3192 |
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
17 1073741824 25 0
Sample Output
1 30
View Code
#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; }


浙公网安备 33010602011771号