找出可以形为 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;
}