POJ2739-Sum of Consecutive Prime Numbers

http://poj.org/problem?id=2739

素数上限不大而且每次要算,就先离线预处理了,也水。

#include<stdio.h>
int prime[2000],n=10000,total=0;
bool isprime(int k)
{
    for(int i=0;i<total;i++)
       if(k%prime[i]==0)
          return false;
    return true;
}
int main(void)
{
    int i,j,m,ans,cnt;
    for(i=2;i<=n;i++)
       if(isprime(i))
          prime[total++]=i;
    while(scanf("%d",&m),m)
    {
        ans=0;
        for(i=0;m>=prime[i];i++)
        {
            cnt=0;
            for(j=i;j<total&&cnt<m;j++)
               cnt+=prime[j];
            if(cnt==m)
               ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}
posted @ 2012-08-28 20:49  Yogurt Shen  阅读(121)  评论(0编辑  收藏  举报