/*
* File: main.cpp
* Author: ssslpk
*
* Created on August 28, 2012, 3:08 PM
*
* 题目意思: 给出一个数,求这个数有几种方法是由一至多个连续的素数之和
* 解题: 暴力水过
*/
#include <cstdlib>
#include<iostream>
#include<string.h>
#include<cstdio>
#include<math.h>
#define maxn 10002
using namespace std;
int ispri[maxn];
int pri[maxn];
int plen;
void prime()
{
memset(ispri,1,sizeof(ispri));
ispri[1]=ispri[0]=0;
for(int i=2;i<maxn;i++)
{
if(ispri[i])
{
pri[plen++]=i;
for(int j=2;i*j<maxn;j++)
ispri[i*j]=0;
}
}
}
int main(int argc, char** argv) {
prime();
int n;
while(scanf("%d",&n),n)
{
int cnt=0;
for(int i=0;i<plen &&pri[i]<=n;i++)
{
int sum=0;
for(int j=0;j<n &&sum<=n;j++)//len
{
sum+=pri[i+j];
if(sum==n){cnt++;break;}
else if(sum>n)break;
}
}
printf("%d\n",cnt);
}
return 0;
}
poj2379 Sum of Consecutive Prime Numbers(水)
最新推荐文章于 2020-10-02 11:26:05 发布