hello kity
期待您的批阅,由于写解题报告时 不一定考虑的很周到,所以如果您有什么不懂的地方,请您留言,然而一天之内我肯定会看见您信息,再对代码注释详细,让您更好的阅读
分类
最新评论
最新留言
链接
RSS
计数器
223092
功能
POJ (2739 Sum of Consecutive Prime Numbers)
spoiler
posted @ 2011年4月30日 21:32
in 未分类
, 1706 阅读
题目分析:直接枚举就可以了 二重循环!
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int pri[10000],k; bool flag[10001]; int get_pri(){ int i; memset(flag,true,sizeof(flag)); pri[1]=2; k=1; for(i=4;i<=10000;i+=2) flag[i]=false; for(i=3;i<=10000;i+=2) if(flag[i]){ pri[++k]=i; for(int j=i*2;j<=10000;j+=i) flag[j]=false; } return 0; } int main(){ int i,j; int n,ans,sum; get_pri(); while(scanf("%d",&n),n){ ans=0; int x=n/2; for(i=1;pri[i]<=x;i++){ sum=0; for(j=i;j<=x;j++){ sum+=pri[j]; if(sum==n){ ans++; break; } if(sum>n) break; } } if(flag[n]) ans++; printf("%d\n",ans); } return 0; }