【蓝桥杯】2018年第九届蓝桥杯C/C++B组省赛——B题 等差素数列
题目
标题:等差素数列
2,3,5,7,11,13,....是素数序列。
类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为6。
2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。
这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
长度为10的等差素数列,其公差最小值是多少?
注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。
题解
絮絮叨叨(骂骂咧咧
一开始看到这道题还是有点懵的,毕竟我个数学小白,对素数什么的最发怵了。
然后找了好多大佬的题解都没看明白,甚至有一个大佬的代码看的我晕头转向~
然后终于被我找到一份能看懂并且觉得非常正确的代码,思路如下:
思路
两层循环,一层循环用于循环公差,一层循环用于循环起始素数。
需要注意的是,内层循环起始素数的时候,不能无边界循环下去,要设置一个上限,否则外层循环永远无法走到下一个公差(自己写的时候自以为是犯的错
内层循环走的时候,只需要判断:①这个数是不是素数(作为起始素数最基本的条件)
②判断从这个素数开始,以cha为公差能否存在连续10个等差的素数。【用ok函数来判断的】
如果以上两个条件都满足,则这就是我们要找的长度为10的等差素数列,其公差的最小值
因为我们是从小到大找的,那我们找到的满足条件的第一个就是答案~
代码
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll maxn=1e6+50;
ll a[maxn];
bool ok(ll n,ll cha)
{
for(ll i=0;i<10;i++)
{
if(!a[n+i*cha])return 0;
}
return 1;
}
int main()
{
a[1]=0;
a[2]=1;
a[3]=1;
for(ll i=4;i<=1000000;i++)
{
bool flag=0;
for(ll j=2;j*j<=i;j++)
{
if(i%j==0)
{
flag=1;
break;
}
}
if(flag)a[i]=0;
else a[i]=1;
}
for(ll cha=1;;cha++)
{
for(ll i=2;i<1000000;i++)
{
if(a[i]&&ok(i,cha))
{
printf("%lld\n",cha);
return 0;
}
}
}
}
【蓝桥杯】2018年第九届蓝桥杯C/C++B组省赛——B题 等差素数列的更多相关文章
- 2018年第九届蓝桥杯B组题C++汇总解析-fishers
2018年第九届蓝桥杯B组题C++解析-fishers 题型 第一题:第几天 第二题:明码 第三题:乘积尾零 第四题:测试次数 第五题:快速排序 第六题:递增三元组 第七题:螺旋折线 第八题:日志统计 ...
- 2018年第九届蓝桥杯题目(C/C++B组)汇总
第一题 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 解题思路: 1. 判断2月有几天, ...
- 2018年第九届蓝桥杯B组第四题:摔手机题解
摔手机 摔手机 动态规划 在蓝桥杯的时候遇到一次 当时没有做对 看了题解也没明白 如今再次遇到这个类似的题目 于是拿出来补补吧 摔手机题目如下: 星球的居民脾气不太好,但好在他们生气的时候唯一的 ...
- 2018年第九届蓝桥杯国赛总结(JavaB组)
懒更,之前的删了补一个国赛总结 记yzm10的第一次国赛(赛点:首都经贸大学) 第一次就拿到了国一,运气不要太好~(同组lz学长豪取国特orz) 从省赛一路水过来,总算有了点成绩.其实最后一题有些遗憾 ...
- 2018年第九届蓝桥杯【C++省赛B组】(未完)
第一题 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容 利用excel更加快捷: 答案是125 ...
- 2018年第九届蓝桥杯【C++省赛B组】
2标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛.16点阵的字库把每个汉字看成是16x16个像素信息.并把这些信息记录在字节中. 一个字节可以存储8位信息,用32个字节就 ...
- 关于2018年第九届蓝桥杯[C++省赛B组][第四题:测试次数]的疑问
题目来源:https://blog.csdn.net/qq_34202873/article/details/79784548 #标题:测试次数#x星球的居民脾气不太好,但好在他们生气的时候唯一的异常 ...
- 2018年第九届蓝桥杯C/C++A组省赛(最后一题)
第十题 付账问题 [题目描述] 几个人一起出去吃饭是常有的事.但在结帐的时候,常常会出现一些争执. 现在有 n 个人出去吃饭,他们总共消费了 S 元.其中第 i 个人带了 ai 元.幸 ...
- 2018年第九届蓝桥杯【C++省赛B组】【第二题:明码】
参考:https://blog.csdn.net/qq_34202873/article/details/79784242 #include <bits/stdc++.h> using n ...
随机推荐
- Java实现 LeetCode 85 最大矩形
85. 最大矩形 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例: 输入: [ ["1","0","1 ...
- GIT 仓库的搭建
1.安装并配置必要的依赖关系 在CentOS 7(和RedHat / Oracle / Scientific Linux 7)上,以下命令还将在系统防火墙中打开HTTP和SSH访问. yum inst ...
- CSS3弹性布局内容对齐(justify-content)属性使用详解
内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐. 该操作发生在弹性长度以及自动边距被确定后. 它用来在存在剩余空间时如何加以分配 ...
- spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息
spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息 本文主要内容: 1:管理页面主机名及访问ip信息提示修改 2:获取当前注册中心的服务列表及每个服务对于的服务提供者列表 ...
- .net core3.1 abp动态菜单和动态权限(动态菜单实现和动态权限添加) (三)
我们来创建动态菜单吧 首先,先对动态菜单的概念.操作.流程进行约束:1.Host和各个Tenant有自己的自定义菜单2.Host和各个Tenant的权限与自定义菜单相关联2.Tenant有一套默认的菜 ...
- git status –s
状态简览 git status 命令的输出十分详细,但其用语有些繁琐. 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种更为紧凑的格式输出. 运 ...
- 使用VBS实现SSH远程登录并自动执行命令
set ws=createobject("wscript.shell")ws.run "Putty所在路径\putty.exe -ssh -pw 你的密码 用户名@192 ...
- 【 哈希和哈希表】Three Friends【进制哈希】
Three Friends 传送门:链接 (UPC)或 链接(大视野) 题目描述 Three friends like to play the following game. The first f ...
- cheerio html方法中文被编码问题
var $ = cheerio.load("<h1><p>你好</p><em>Hello,World!</em></h1&g ...
- 【JMeter_09】JMeter逻辑控制器__临界部分控制器<Critical Section Controller>
临界部分控制器<Critical Section Controller> 业务逻辑: 根据锁名来控制并发,同一个锁名之下,在同一时间点只能存在一个运行中,适用于控制并发的场景 锁名类型: ...