#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