UVa 1210 连续素数

来源:互联网 发布:毕业设计的要求及数据 编辑:程序博客网 时间:2024/06/07 06:30

分析:求出1~1e4的所有素数然后暴力判断即可

Code:

#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<cstdlib>#include<vector>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)using namespace std;vector<int> prime;const int N=1e4+10;void Euler_prime() {    bool check[N];    memset(check,0,sizeof(check));    for(int i=2;i<=N;i++) {        if(!check[i]) prime.push_back(i);        for(int j=0;j<prime.size();j++) {            if(i*prime[j]>N) break;            check[i*prime[j]]=1;            if(i%prime[j]==0) break;        }     }}int n;int main() {    Euler_prime();    while(scanf("%d",&n)&&n) {        int ans=0;        for(int i=0;i<=prime.size();i++) {            int tot=0,id=i;            tot+=prime[id++];            while(tot<n) {                tot+=prime[id++];            }            if(tot==n) ans++;        }        printf("%d\n",ans);    }    return 0;}
原创粉丝点击