蓝桥杯真题:等差素数列
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
2,3,5,7,11,13,.... 是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为 30,长度为 6。
2004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
长度为 10 的等差素数列,其公差最小值是多少?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
从这题学到了一点数论方法:欧拉筛
可以看看这几个地方的博客(感谢大佬教我做题):第一个是举例的,第二个可以看看具体代码
欧拉筛法原理C语言,素数筛法_伯索云学堂的博客-CSDN博客
等差素数列(蓝桥杯省赛)_Anterior_condyle的博客-CSDN博客_蓝桥杯等差素数列
代码如下所示:
#include <bits/stdc++.h>
using namespace std;
#define N 100001
int tot=0;
bool vis[N];
vector<int> prime;//欧拉筛生成素数表
void prime_table(int n)
{vis[1]=true;for(int i=2;i<=n;++i){if(!vis[i]) prime.push_back(i);for(auto j=0;j<prime.size() && i*prime[j]<=n;++j){vis[i*prime[j]]=true;if(i%prime[j]==0) break;}}
}int main()
{// 请在此输入您的代码prime_table(50000);int p=1000;for(auto a=0;a<prime.size()/4;++a){for(int d=1;d<=p;++d){int num=1;while(num<=10){if(vis[prime[a]+(num-1)*d]) break;else num++;}if(num>10){if(d<p) p=d;}}}cout<<p<<endl;return 0;
}
答案是210,输出即可
如果对欧拉筛代码没看太懂的同学,我说一些困扰了我一阵的东西:上边那个prime[j]是最小素数,他的循环是对每个i,遍历从小到大的每个已选出的素数,两者相乘即为要筛掉的合数。他不是按照上边博客的例子那样一个素数一个素数来的。
当i%prime[j]==0的时候,i=k*prime[j],i*prime[j+1]=prime[j]*k*prime[j+1]=prime[j]*n,这个n在哪个位置呢?i*prime[j]<i*prime[j+1],所以n>i。我们先来看i,由于i此时有更小的质因数prime[j],所以到下一次prime[j+1]的时候可以写成prime[j]*n,那我们想想,我们岂不是当i遍历到n的时候又要筛一次了?但是欧拉筛是想着用最小质因数筛的,我们选择用后面的n来筛这个合数,这样只会筛一次。j+2,j+3...同理
蓝桥杯真题:等差素数列相关推荐
- 第八届蓝桥杯第二题等差素数列
标题:等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 200 ...
- python蓝桥杯训练营一 等差素数列
2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为 3 ...
- 第五届蓝桥杯真题解析【JavaC组】
第五届蓝桥杯真题解析[JavaC组] 业精于勤,荒于嬉:行成于思,毁于随.--韩愈 文章目录 ***第五届蓝桥杯真题解析[JavaC组]*** 前言 A:猜年龄 B:等额本金 C:猜字母 D:大衍数列 ...
- 蓝桥杯python省赛冲刺篇2——常用算法的详细解析及对应蓝桥杯真题:打表模拟法、递推递归法、枚举法、贪心算法、差分与前缀和
注意:加了题目链接 目录 注意:加了题目链接 一.打表模拟法 介绍 1. 算式问题 题目描述 解析与代码演示 2. 求值 题目描述 解析与代码演示 3. 既约分数 题目描述 解析与代码演示 4. 天干 ...
- 蓝桥杯真题2017-2021
刷完近几年真题,感觉理解完之后,拿奖问题不大,本人这次获得2022年蓝桥杯javaB组省一,以下是历年javaB组省赛题目. 文章目录 2017年真题 一.购物单 二.纸牌三角形 三.承压计算 四.魔 ...
- c语言六角填数蓝桥杯答案,六角填数(全排列)蓝桥杯真题
六角填数(全排列)蓝桥杯真题 六角填数(全排列)蓝桥杯真题 如图所示六角形中填入1-12的数字,使每条直线上的数字和相等,图中已经填好了3个数字,请你计算*号数字是多少 蓝桥杯老套路,经常这样考全排列 ...
- 2016年第七届蓝桥杯真题解析JavaC组
相关题目: 2016年第七届蓝桥杯真题解析JavaB组 2016年第七届蓝桥杯真题解析JavaC组 2017年第八届蓝桥杯真题解析JavaB组 2017年第八届蓝桥杯真题解析JavaC组 2018年第 ...
- python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在19351936年应邀来中国清华大学讲学。。。
python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学... 问题描述 全排列模板: 美国数学家维纳(N. ...
- 【蓝桥杯真题】16天冲刺 Python
距离比赛很快了,希望和我一起准备的PY党能更加熟练的掌握Python! 1.距离和(模拟赛填空题) 问题描述: 两个字母之间的距离定义为它们在字母表中位置的距离.例如 A和 C 的距离为 2,L 和 ...
- 蓝桥杯真题:三羊献瑞
蓝桥杯真题:三羊献瑞 观查下面的加法算式: 其中相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写"三羊献瑞"所代表的4位数字(答案唯一),不要填写任何多余内容. 分析 ...
最新文章
- 自学python找工作难吗-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
- Linux 最简单的驱动程序hello world
- MVC通过ViewBag动态生成Html输出到View
- python的knn算法list_[机器学习]kNN算法python实现(实例:数字识别)
- c语言 syn扫描,syn flooder*** (C语言)
- [转]Java总结篇系列:Java泛型
- unity自带的方法
- MATLAB中uigetfile函数使用方法
- git 修改commit内容(--amend)
- 2013-C++第15周项目参考解答链接集
- 小工具更新:车辆违章查询 v1.0.0.2
- 初识Java+JDK的安装与环境变量的配置+IDEA的安装
- 20、CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别
- git配置代理 代理 socks5带用户名密码
- html蔡徐坤邀请你打篮球源码,蔡徐坤给IKUN“讲笑话”,想邀请粉丝打篮球,网友:你打球像...
- RocketMQ单机环境搭建
- 将字符串形式的日期转换成日期对象
- 新手安装R以及Rstudio软件
- 世界最迷人的白色海岸线
- Oracle ORA-01017: invalid username/password;logon denied问题解决