2012年2月4日星期六

POJ 2739 Sum of Consecutive Prime Numbers

打表,大水,RE 3次WA 1次。。。我原来堕落到这么水的程度了。。。囧~
虽然说在discuss里看到有10001的数据,但终究是数组开小了,而且循环条件没处理好。
开始想这么打表会不会太耗时效率太低?。。。结果0ms瞎了我的眼 = =
想个筛数法还回忆了好一阵,我勒个去!


#include<cstdio>
const int MAX = 10050;
int number[10050] = {1,1,0};
int prime_list[2000];
int ans[MAX];
int main()
{
int i,j,k,sum = 0;
for(i = 2;i < 105;i ++)
if(number[i] == 0)
for(j = i * i;j < 10030;j += i)number[j] = 1;
for(i = 2,k = 0;i < 10030;i ++)
if(number[i] == 0){prime_list[k] = i;k ++;}      //prime number list
for(i = 0;prime_list[i] < 10030 && prime_list[i] > 0;i ++){     //here forget the rest 0 are also below 10030 = =
for(j = i;sum < 10030;j ++){
ans[sum] ++;
sum += prime_list[j];
}
sum = 0;
}
while(scanf("%d",&i) && i)
printf("%d\n",ans[i]);
return 0;
}

没有评论:

发表评论