zoj 2952

一開始被嚇到了,估算不出來數據有多少個就該自己試試的;總共不超過五萬個數,計算機很快就計算出來了……

#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define MAX 2147483648
int main()
{
	int i,j,k,a[50000];
	for(i=2,k=0;i<sqrt(MAX);i++)
	{
		for(j=2;pow(i*1.0,j*1.0)<MAX;j++)
		{
			a[k]=pow(i*1.0,j*1.0);
			k++;
		}
	}
	sort(a,a+k);
	printf("%d\n",a[0]);
	for(i=1;i<k;i++)
	{
		if(a[i]!=a[i-1])
			printf("%d\n",a[i]);
	}
	return 0;
}
//沒想到啊,就這樣寫不會超時,一共就四萬多個數,一個一個算出來


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章