zoukankan      html  css  js  c++  java
  • 等差素数数列-蓝桥杯

    等差素数列 2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。

    上边的数列公差为 30,长度为 6。 2004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果! 有这一理论为基础,请你借助手中的计算机,满怀信心地搜索: 长度为 10 的等差素数列,其公差最小值是多少? 注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。

    答案:210

    题解:枚举公差,等差数列一定满足通项公式:An=a1+(n-1)*d,三个for循环,分别枚举a1,d,n就行了

    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<math.h>
    #include<vector>
    using namespace std;
    int a[1000005],vis[1000005];
    vector<int>p;
    int main()
    {
        memset(vis,0,sizeof(0));
        int n,t=1;
        cin>>n;
        a[0]=2;
        for(int i=3;i<=n;i=i+2)
        {
            int j,mid;
            mid=sqrt(i);
            for(j=3;j<=mid;j=j+2)
            {
                if(i%j==0)
                    break;
            }
            if(j>mid)
            {
                a[t]=i;
                vis[a[t]]=1;
                t++;
            }
        }
        for(int i=0;i<t;i++)
        {
            for(int d=1;d<1000;d++)
            {
                for(int x=1;x<=10;x++)
                {
                    if(vis[a[i]+(x-1)*d])
                    {
                        if(x==10)
                        {
                            p.push_back(d);
                            break;
                        }
                    }
                    else
                        break;
                }
            }
        }
        sort(p.begin(),p.end());
        for(vector<int>::iterator it=p.begin();it!=p.end();it++)
        {
            cout<<*it<<endl;
        }
        //system("pause");
        return 0;
    
    }
  • 相关阅读:
    python+opencv实现图像自适应阈值的均衡化
    ubuntu添加新的分辨率选项(干货)
    python+opencv检测图像清晰度
    python根据列表创建文件夹,拷贝指定文件
    牛客多校Round 4
    牛客多校Round 3
    HDU多校Round 2
    HDU多校Round 1
    牛客多校Round 2
    牛客多校Round 1
  • 原文地址:https://www.cnblogs.com/-citywall123/p/10562125.html
Copyright © 2011-2022 走看看