poj 2591 Set Definition

#include <iostream>            //参照poj 2247
using namespace std;
int prime[10000000],start[2]; //这里的数组开得较大,如果写成prime[10000000]={1};在POJ编译器上会产生错误:
/*

Compile Error
Main.cpp
Main.exe : fatal error LNK1106: invalid file or disk full: cannot seek to 0x2646748
*/
int main()
{
int i,n;
prime[
0]=1;
for(i=1;i<10000000;i++)
{
prime[i]
=prime[start[0]]*2+1;
if( (prime[start[0]]*2+1)<(prime[start[1]]*3+1) )
start[
0]++;
else if ( (prime[start[0]]*2+1)>(prime[start[1]]*3+1) )
prime[i]
=prime[start[1]]*3+1,start[1]++;
else
{
start[
0]++;start[1]++;
}
}
while(scanf("%d",&n)!=EOF)
{
printf(
"%d\n",prime[n-1]);
}
return 0;
}

  

posted on 2011-07-20 22:54  sysu_mjc  阅读(191)  评论(0编辑  收藏  举报

导航