二、题目:等差素数列

2,3,5,7,11,13,….是素数序列。
类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为6。

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

有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:

长度为10的等差素数列,其公差最小值是多少?

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


  • 分析思路:
    常见素数列:2,3,5,7,11,13,17,19,23…
    枚举法
    枚举首项:a[i]
    枚举公差: 1   2+3=5可以,3+5=8不符合
                    2
                    3
                    …
    公差的极限是最后数列最后一项-首项
    公差max-a[i],在每个公差过程中累加还要枚举个数
    从头到尾找10个

  • 代码:

#include<iostream>
#include<algorithm>
#include<set>
using namespace std;typedef long long LL;
set<int>all;
bool isPrime(LL t){for(int i=2;i<t/2;i++){  //除2或者开更号 if(t%i==0)  //能否被整除,判断是否为素数 return false;}return true;
}
int f(LL a[],int n){ //把5000长度存储 ,已经是素数的数列中,找等差的素数列 for(int i=0;i<n;i++){   LL first=a[i];  //首项 for(int delta=1;delta<a[n-1]-first;delta++){ //delta枚举公差,考虑极限最大的减第一个 int m=first; //考虑首相 for(int j=1;j<10;j++){ //从首相开始加9次,若全为素数,则成功 m+=delta; //j每走一次,m加一次delta if(all.find(m)==all.end()) //,找不到m不是素数 break;if(m>a[n-1]) break; //m超出范围 if(j==9)  //已经找到第10项return delta; }    }} return -1; //中间未找到
}
const int N=5000;  //目前先定为找到5000
LL a[N];  //素数列
int main(){a[0]=2;  //第一个素数 a[1]=3;  //第二个素数 all.insert(2); //2all.insert(3);  //3int index=2;LL t=5;  //a【0】+a【1】=5 while(index<N){if(isPrime(t)){  //如果是素数 a[index++]=t;  //找到素数填到数组中 all.insert(t);}t++;}cout<<f(a,N)<<endl;return 0;
}

答案:210

2017蓝桥杯C++B:等差素数列(枚举优化)相关推荐

  1. 2017年蓝桥杯省赛 等差素数序列(暴力循环)

    题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可.2,3,5,7,11,13,....2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,1 ...

  2. 2017蓝桥杯等差素数(C++B组)

    题目 :                                            等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 ...

  3. 【Code Pratice】—— 等差素数列、错误票据、神奇算式

    文章目录 1 | 等差素数列 题目 思路 逻辑代码 2 | 错误票据 题目 思路 逻辑代码 3 | 神奇算式 题目 思路 逻辑代码 1 | 等差素数列 题目 2,3,5,7,11,13,-是素数序列. ...

  4. 2017蓝桥杯省赛C++B组真题与题解

    A:购物单 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦 ...

  5. 2017蓝桥杯java B组纸牌三角形

    2017蓝桥杯java B组纸牌三角形 1.标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算).要求每个边的和相等. 下图就是一种排法 A 9 6 4 8 ...

  6. [蓝桥杯2017初赛]等差素数列-巧妙枚举(思维)

    题目描述 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 2004年,格林与华人 ...

  7. 等差素数列--蓝桥杯

    题目描述: 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 2004年,格林与 ...

  8. 等差素数列(素数筛暴力)

    标题:等差素数列 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 2004年, ...

  9. 第八届蓝桥杯第二题等差素数列

    标题:等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 200 ...

最新文章

  1. Jsp页面中使用fckeditor控件的两种方法
  2. 亿级商品详情页架构演进技术解密 | 高可用架构系列 二
  3. 共享服务器设置权限修改,共享服务器权限设置
  4. 设计模式系列之----观察者模式
  5. TCP通信之获取本机IPV4地址
  6. python可以处理哪些文件_Python(文件处理)
  7. DVD-Cloner 2021 for mac(DVD光盘刻录工具)
  8. RegeX版本更新至2.0.0.4 加入英文语言包
  9. 单片机python教程推荐_有Python基础的小白如何学习单片机?
  10. 解析双稳态肖特基二极管的设计
  11. World Development Indicators(世界发展指标相关数据集)
  12. Flyme将在明年“上车”?沈子瑜接棒魅族董事长后称将与华为展开竞争
  13. 在MacBook Pro上装Mac和Linux双系统
  14. iOS - 接入 Live2D
  15. 如何打造高绩效的研发团队
  16. 当APO生产订单报工遇到物料账期没开
  17. c语言 的表示方法,c语言运算符号的表示方法
  18. 设置IP代理错误:“[WinError 10061] 由于目标计算机积极拒绝,无法连接”解决办法
  19. linux kernel -- oops场景奈何桥
  20. ROT13 - 维基百科,自由的百科全书

热门文章

  1. python是什么怎么读-python怎么发音
  2. python能做什么-揭秘python都能做什么?
  3. 学python有前途吗-我们能用Python做什么?学Python有前途吗?
  4. python教程视频哪个好-Python 基础视频教程那个好?
  5. python使用缩进来体现-Python 使用缩进来体现代码之间的逻辑关系 .
  6. Android语音识别(本地+第三方)
  7. css 文字超出隐藏显示省略号
  8. display:none的进一步理解
  9. java异常原则_有效处理Java异常三原则
  10. myeclipse中加入jad查看jar源代码