zoj 2952 Find All M^N Please

找出可以形为 m^n的数。。。

 

筛法喽。到2^31不到5W个数,然后存到数组里,排下序即可。

 

我后来想能不能直接打表啊,开始没这么做是因为int肯定装不下,试试char型的打表,不行,可以编译,但是运行不了,bool型的也是,提交后返回CE:collect2: ld terminated with signal 24 [CPU time limit exceeded] = =。。第一次见这种信息。。。

 

直接打表的话,超过提交限制了 = =。。

 

#include <cstdio> #include <cstdlib> #include <iostream> #include <string.h> #include <limits.h> #include <math.h> #include <algorithm> using namespace std; int num[50000]; int cou; int main() { int n; int i; cou = 0; for(i=2; i<=sqrt(INT_MAX); i++) { n = i; while( n <=INT_MAX/i ) { n *= i; num[cou++] = n; } } sort(num,num+cou); printf("%d/n",num[0]); for(i=1; i<cou; i++) { if( num[i] != num[i-1] ) printf("%d/n",num[i]); } return 0; }  

你可能感兴趣的:(zoj 2952 Find All M^N Please)