您的位置:首页 > 其它

poj2379 Sum of Consecutive Prime Numbers(水)

2012-08-29 00:26 232 查看
/*
* 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: