#include <iostream> using namespace std; const int maxp=2000; int n=10000; int prime[maxp],total=0; //判断是否为素数 bool isprime(int num) { int i; for(i=0;i<total;i++) if(0==num%prime[i]) return false; return true; } int main() { int i,j,m,ans,cnt; //建立素数表 for(i=2;i<=n;i++) if(isprime(i)) prime[total++]=i; prime[total]=n+1; cin>>m; while(m) { ans=0; for(i=0;m>=prime[i];i++) { cnt=0; for(j=i;cnt<m && j<total;j++) cnt+=prime[j]; if(cnt==m) ++ans; } cout<<ans<<endl; cin>>m; } return 0; }
POJ 2739 Sum of Consecutive Prime Numbers
原文地址:http://blog.csdn.net/u011694809/article/details/45968699