zoukankan      html  css  js  c++  java
  • 最强素数

    题目描述
    小李在你帮助之下轻松战胜了他的同学们,于是满怀恶意的同学出了一个题目来为难小李,作为小李神一样的队友,你又要出力了。
    素数41能写成连续6个素数之和:41=2+3+5+7+11+13。
    现在要求n以内的素数中,能表示为最多连续素数之和的那个数,如果有多个答案,请输出最大的那个素数。

    输入
    仅一行,一个整数n(1<=n<=1000000)。

    输出
    输出就一个整数,为所求的能表示为最多连续素数和的那个素数。

    样例输入
    复制样例数据
    100
    样例输出
    41

    提示
    41=2+3+5+7+11+13

    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    int prime[N],x[N],cnt,n;
    void is_prime()       //找素数
    {
        for(int i=2;i<=n;i++)
            {
            if(x[i]==0)
                {
                for(int j=i*2;j<=n;j+=i)
                {
                    x[j]=2;
                }
                x[i]=1;
                prime[cnt++]=i;
            }
        }
    }
    int main()
    {
        int len=0,ans=0,m;
        scanf("%d",&n);
        is_prime();
        for(int i=0;i<cnt;i++)    //从第一个开始
            {
            int t=0,tl=0;
            for(int j=i;j<cnt;j++)   //寻找到连续相加>=n,跳出来从下一个素数开始
            {
                tl++;
                t+=prime[j];
                if(t>n)  break;
                if(x[t]==1&&tl>=len) //记录答案ans
                {
                    ans=t;
                    len=tl;
                }
    
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
    
    
  • 相关阅读:
    Docker 部署项目
    Python+Pywinauto+Lackey 实现PC端.exe 自动化测试
    03_Fiddler 导出jmx文件
    02_Postman 中文汉化版
    07_Linux系统(Centos)安装tomcat和部署Web项目
    05_oracel题集
    02_appium基本使用
    01_appium的安装
    02_Monkey使用
    01_Monkey安装
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319587.html
Copyright © 2011-2022 走看看