zoukankan      html  css  js  c++  java
  • 等差素数列

    等差素数列

    类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列,上边的数列公差为30,长度为6。

    2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。这是数论领域一项惊人的成果!

    有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:长度为10的等差素数列,其公差最小值是多少?

    注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。

    解题思路:暴力破解,设起始素数为2,结尾素数为1000,起始公差为2,结尾公差为1000,循环判断十个数字是否为素数。

     1 #include<iostream>
     2 #include<cmath>
     3 using namespace std;
     4 
     5 bool isPrimeNumber(int t);
     6 
     7 int main() {
     8 
     9     bool flag = true;
    10     for (int i = 2; i < 1000; i++) {        // i:起始的素数
    11         for (int j = 2; j < 1000; j++) {    // j:等差数列公差
    12             flag = true;
    13             for (int k = 0; k < 10; k++) {    // k:第k个素数
    14                 if (!isPrimeNumber(i + j * k)) { // 判断等差数列中的数字是否为素数
    15                     flag = false;
    16                     break;
    17                 }
    18             }
    19             if (flag) { cout << j; break; }  // 输出结果
    20         }
    21     }
    22 
    23     return 0;
    24 }
    25 
    26 /*
    27 ** 判断一个数是否为素数,是则返回true,否则返回false
    28 */
    29 bool isPrimeNumber(int t) {
    30     for (int i = 2; i <= sqrt(t); i++) {
    31         if (t % i == 0)
    32             return false;
    33     }
    34     return true;
    35 }
  • 相关阅读:
    codevs1044 拦截导弹(最长不下降子序列dp)
    codevs1014 装箱问题(DP)
    codevs1068 乌龟棋(DP)
    angular.extend vs angular.copy
    angular input框点击别处 变成不可输入状态
    angular select框 option空行
    angular ui 路由传参
    setTimeout 传参
    设置请求头信息的不同方式
    vertical-align
  • 原文地址:https://www.cnblogs.com/nkqlhqc/p/10566341.html
Copyright © 2011-2022 走看看