UVA 1210(p343)----Sum of Consecutive Prime Numbers

来源:互联网 发布:机锋网推荐的淘宝商家 编辑:程序博客网 时间:2024/05/25 23:27
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=10000;int num,u[maxn+50],prime[maxn+50];int a[6000000],sum[maxn];void get(){    num=1;    memset(u,true,sizeof(u));    memset(sum,0,sizeof(sum));    for(int i=2;i<maxn;i++)    {        if(u[i]) prime[num++]=i;        for(int j=1;j<num;j++)        {            if(i*prime[j]>maxn) break;            u[i*prime[j]]=false;            if(i%prime[j]==0) break;        }    }   for(int i=1;i<num;i++) sum[i]=sum[i-1]+prime[i];}void solve(){    int temp=0;    for(int i=1;i<num;i++)        for(int j=i;j<num;j++)           a[sum[j]-sum[i-1]]++;}int main(){    //freopen("in.in","r",stdin);    //freopen("out.out","w",stdout);    get();    solve();    int x;    while(scanf("%d",&x)!=EOF&&x)      printf("%d\n",a[x]);    return 0;}

0 0