POJ2739-Sum of Consecutive Prime Numbers
http://poj.org/problem?id=2739
素数上限不大而且每次要算,就先离线预处理了,也水。
#include<stdio.h> int prime[2000],n=10000,total=0; bool isprime(int k) { for(int i=0;i<total;i++) if(k%prime[i]==0) return false; return true; } int main(void) { int i,j,m,ans,cnt; for(i=2;i<=n;i++) if(isprime(i)) prime[total++]=i; while(scanf("%d",&m),m) { ans=0; for(i=0;m>=prime[i];i++) { cnt=0; for(j=i;j<total&&cnt<m;j++) cnt+=prime[j]; if(cnt==m) ans++; } printf("%d\n",ans); } return 0; }