zoukankan      html  css  js  c++  java
  • poj2739(尺取法+质数筛)

    题意:给你一个数,问这个数能否等于一系列连续的质数的和;

    解题思路:质数筛打出质数表;然后就是尺取法解决;

    代码:

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #define maxn 1000005
    using namespace std;
    int visit[maxn];int prime[maxn];
    void qprime()
    {
        memset(visit,0,sizeof(visit));
        int num=0;
        for(int i=2;i<maxn;i++)
        {
            if(!visit[i])
                prime[++num]=i;
            for(int j=1;j<=num&&i*prime[j]<maxn;j++)
            {
                visit[i*prime[j]]=1;
                if(!i%prime[j])
                    break;
            }
        }
    }
    int main()
    {
        int left=1;int right=1;
        int n;
        int sum=0;
        int count=0;
        qprime();
        while(cin>>n)
        {
            if(n==0)
                return 0;
            left=right=1;sum=0;count=0;
            while(1)
            {
                while(right<=n&&sum<n)
                {
                    sum+=prime[right++];
                }
                if(sum<n)
                    break;
                if(sum==n)
                {
                    count++;
                }
                sum-=prime[left++];
            }
            cout<<count<<endl;
        }
        return 0;
    }
  • 相关阅读:
    作业5,6 2019/10/23
    作业1、2、3、4 2019/10/23
    实现Map传参Mybatis
    maven工程配置pom.xml实现mybatis的访问数据库操作
    测试
    Postman篇之命令行测试
    unittest框架
    测试
    测试
    测试
  • 原文地址:https://www.cnblogs.com/huangdao/p/8329017.html
Copyright © 2011-2022 走看看