[蓝桥杯B组C++/C]第二题:等差素数列
来源:互联网 发布:数据库新建表 编辑:程序博客网 时间:2024/06/06 17:40
标题:等差素数列 2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30,长度为6。 2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果! 有这一理论为基础,请你借助手中的计算机,满怀信心地搜索: 长度为10的等差素数列,其公差最小值是多少? 注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。
解题思路:
用筛法求素数,not_prime[i]数组标记了第i个数是不是素数
从第一个素数2,长度为1开始穷举:
起始素数2,长度1...2...3....
起始素数3,长度1...2...3....
起始素数5,长度1...2...3....
...
起始素数i,长度1...2...3....
如果满足10个等差素数,就输出公差d,结束穷举
#include <iostream>#include <cstring>using namespace std;const int maxn = 10000;bool not_prime[maxn];void f(){memset(not_prime,0,sizeof(not_prime));not_prime[0] = not_prime[1] = 1;for (int i = 2; i < maxn; ++i){if (!not_prime[i]){for (int j = i * 2; j < maxn; j += i){not_prime[j] = 1;}}}}int main(){f();//for (int i= 2; i < 100; ++i) if (!not_prime[i]) cout << i << " ";int find = 0;for (int i = 2;!find && i < maxn; ++i){//从2开始作为开头for (int d = 1; &find && d < 1000; ++d){int len = 0;int temp = i;while (!not_prime[temp]){++len;temp = temp + d;if (len == 10){cout << "d:" << d<<endl;find = 1;break;}}} }return 0; }
阅读全文
0 0
- [蓝桥杯B组C++/C]第二题:等差素数列
- 2017蓝桥杯:等差素数列
- 等差素数列
- 等差素数列
- 等差素数列
- 等差素数列
- 第八届蓝桥杯真题 02 等差素数列
- 第八届蓝桥杯C/C++B组【第二题】
- 第八届蓝桥杯【省赛试题2】等差素数列
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第二题:切面条(5' )
- 2014蓝桥杯本科B组C/C++第二题【切面条】
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第二题:切面条(5' )
- 【c程序设计语言(第二版)】素数
- 等差素数数列
- 第四届蓝桥杯C/C++本科B组第二道大题
- 2016蓝桥杯C/C++B组第九题 交换瓶子
- 2015年第六届蓝桥杯C/C++程序设计本科B组决赛第二题
- 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
- fashion-mnist
- Mybatis generator 生成代码
- 2017 ACM/ICPC Asia Regional Shenyang card card card(补题)
- CNN/RNN网络各自参数含义、如何初始化参数,BP计算以及常见超参数调整策略。。。。
- cookie与session
- [蓝桥杯B组C++/C]第二题:等差素数列
- 微信小程序富文本展示,wxParse使用
- 传统燃油车要消失?
- QQ第三方登录
- Lombok介绍及使用方法
- xml可视化编辑器
- Java【有哪些适合新手练手的Java项目?】
- Java 2
- 19:装箱问题(4.6算法之贪心)