1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 5 /*素数判定函数*/ 6 bool isPrime( int n ){ 7 if( n <= 1 ){ 8 return false; 9 } 10 for( int i = 2; i <= sqrt(n); ++i ){ 11 if( n%i == 0 ){ 12 return false; 13 } 14 } 15 return true; 16 } 17 18 int main() 19 { 20 long long int n; 21 while( cin>>n ){ 22 int max_q = log2(n); 23 int flag = 0; 24 for( int q = 2; q <= max_q; ++q ){ 25 double p = pow( n, 1.0/q ); //p^q = n ——> p = n^(1/q) 26 if( p-int(p)==0 && isPrime( int(p) ) ){ //p^q = n ——> n开q次方后恰好得到素数p 27 cout<<int(p)<<" "<<q<<endl; 28 flag = 1; 29 break; 30 } 31 } 32 if( !flag ){//未找到满足条件的p,q 33 cout<<"No"<<endl; 34 } 35 } 36 return 0; 37 }
超级素数幂--全国模拟(一)
免责声明:文章转载自《超级素数幂--全国模拟(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇lombok日志包的使用Linux服务器上安装织梦CMS下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=