poj 2739(暴力求解)

来源:互联网 发布:上古卷轴知乎 编辑:程序博客网 时间:2024/05/22 03:21

这个题没想出什么好的算法。。。。只是试一试的心态。。居然都16ms过了。。。数据不强。。。。


#include<cstdio>#include<iostream>#include<cstring>using namespace std;int prim[10000], p;bool isprim[10005];int main() {    int i, j, n, sum,ans;    memset(isprim, 1, sizeof (isprim));    isprim[0] = isprim[1] = p=0;    for (i = 2; i < 10005; i++)        if (isprim[i]){            for (j = i * i; j < 10005; j += i)                isprim[j] = 0;            prim[p++]=i;        }    while(scanf("%d",&n) && n){        for(i=0,ans=0;prim[i]<=n && i<p;i++)            for(j=i,sum=0;prim[j]<=n && j<p;j++){                sum+=prim[j];                if(sum==n){                    ans++; break;                }                if(sum>n) break;            }        printf("%d\n",ans);    }    return 0;}


原创粉丝点击