zoukankan      html  css  js  c++  java
  • 等差素数列 暴力搜索

    标题:等差素数列
    
    2,3,5,7,11,13,....是素数序列。
    类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
    上边的数列公差为30,长度为6。
    
    2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。
    这是数论领域一项惊人的成果!
    
    有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
    
    长度为10的等差素数列,其公差最小值是多少?
    
    注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。
    
    #include <iostream>
    using namespace std;
    int a[1000000];
    int f(int x)//判断是否为素数 
    {
        for(int i = 2; i < x; i++) {
            if(x%i == 0) {
                return 0;   
            }
        }
        return 1;
    }
    
    int main()
    {   
        for(int i = 2; i < 100000; i++) {
            if( f(i) ) {
                a[i] = 1;   //说明i为素数  赋1 初始化素数数组 
            }
        }
    
        for(int cha = 1; cha < 10000; cha++) { //公差 
            for(int i = 2; i < 100000; i++ ) {  //起始位置 
                int count;
                for(count= 0 ; count < 10; count++) {
                    if(a[ i+count*cha ] != 1) {  //说明这个数不是素数 
                        break; 
                    } 
                }
                if(count == 10) {
                    cout << cha;
                    return 0;
                }
            } 
        }
        return 0;
    } //210
    View Code

     分析:

    1.首先范围的确定

    2.对自己的想法自不自信 

    3.判断素数的方法

    暴力搜索肯定费时间,考验!!!

  • 相关阅读:
    线程模型及线程池原理
    Python装饰器
    CentOS下yum源配置
    Windows下右键增加Typora选项
    Python批量修改文件名
    《财务自由之路》读后感
    python字典练习01
    《亲密关系》读后感
    Git远程仓库
    《生命是什么》读后感
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10583800.html
Copyright © 2011-2022 走看看