蓝桥杯真题 17省2-等差素数列 2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30
题目:
2,3,5,7,11,13,.... 是素数序列。 类似:7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为 30,长度为 6。
2004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
长度为 10的等差素数列,其公差最小值是多少?
解法是暴力破解
- c++版
#include <stdio.h>
int a[100000]={0};
int check(int x) {if(x < 2) return 0;for(int i = 2; i < x; i++) {if(x%i == 0) {return 0;}}return 1;
}
int main() {for(int i = 2; i < 100000; i++) {if( check(i) ) {a[i] = 1; //说明i为素数 赋1}}for(int cha = 1; cha < 10000; cha++) { //公差for(int i = 2; i < 100000; i++ ) { //起始位置int count;for(count= 0 ; count < 10; count++) {if(a[ i+count*cha ] != 1) { //说明这个数不是素数break;}}if(count == 10) {printf("%d",cha);return 0;}}}return 0;
}
- Java版:
package lanqiaobei;public class test {public static boolean checkp(int x) {if(x<2) {return false;}for(int i=2;i<x;i++) {if(x%i==0) return false;}return true;}
public static void main(String[] args) {int[] primes = new int[100000];for(int i=0;i<100000;i++) {if(checkp(i))primes[i]=1;elseprimes[i]=0;}int timer=0;for(int gong=9;gong<10000;gong++) {for(int j=2;j<100000;j++) {int h=0;for(h =0;h<10;h++) {if((j+gong*h)>=100000) break;if(primes[j+gong*h]!=1) {break;}}if(h==10&&timer==0) {System.out.println("公差是"+gong);timer++;}}}}
}
注意,解法中c++版和java版的大题思路都是一样的,但是有一个点非常重要
在对不同公差情况进行暴力搜索时,判断能否构成长度10的素数等差数列时,采用的是从起始位置加1,2,3...次公差后,所在位置是否也为素数
在c++中,判断是否为素数是用
if(a[ i+count*cha ] != 1) { //说明这个数不是素数
break;
}在java中,判断是否为素数是用
if((j+gong*h)>=100000) break;
if(primes[j+gong*h]!=1) {
break;}java版中的if((j+gong*h)>=100000) break;是为了避免越界(会越界就肯定不能构成长度10的等差数列直接break),c++数组读写是不做边界检查的(为了快),所以就稀里糊涂的break了,而在这之前,我发现会越界后直接采用if((j+gong*h)<100000&&primes[j+gong*h]!=1) {break;},这就导致了一个问题,所有不满足小于100000的都不会break,都不会break,那么都会达到10,都会达到10那么程序就误认为,这些j+gong*h大于100000的都可以构成一个长度10的等差数列,咔咔给我出了几万上十万的错误结果,我也不知道我哪根筋抽了
如有不对的地方敬请指正,谢谢!
蓝桥杯真题 17省2-等差素数列 2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30相关推荐
- 第八届蓝桥杯C/C++省赛题:2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30……
题目: 标题:等差素数列 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 20 ...
- 蓝桥杯真题 17省1-购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。 这不,XX大促销又来了!老板夫人开出了长长的
问题描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的 ...
- 蓝桥杯真题 17省3-承压计算 X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。 每块金属原料的外形、尺寸完全一致,但重量不同。 金属材料被严格地堆放成金字塔形。
问题描述 X星球的高科技实验室中整齐地堆放着某批珍贵金属原料. 每块金属原料的外形.尺寸完全一致,但重量不同. 金属材料被严格地堆放成金字塔形. 7 5 8 7 8 8 9 2 7 2 8 1 4 9 ...
- 7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,求等差素数的最小公差
public static void main(String[] args) { int sum = 0; // sum用来记录一次十次遍历有多少个素数 for ( ...
- 第十届蓝桥杯c语言试题,第十届蓝桥杯真题编程题1-7解析(高级组).pdf
scratch 少儿编程第十届蓝桥杯真题 7 大家好 ~今天我们来讲解 scratch 蓝桥杯第十届编程大题的第七道题. 同样,这道题也是非常有难度的一道题.一起来看一下吧 解析: 女孩的程序 1.在 ...
- 第五届蓝桥杯真题解析【JavaC组】
第五届蓝桥杯真题解析[JavaC组] 业精于勤,荒于嬉:行成于思,毁于随.--韩愈 文章目录 ***第五届蓝桥杯真题解析[JavaC组]*** 前言 A:猜年龄 B:等额本金 C:猜字母 D:大衍数列 ...
- 蓝桥杯python省赛冲刺篇2——常用算法的详细解析及对应蓝桥杯真题:打表模拟法、递推递归法、枚举法、贪心算法、差分与前缀和
注意:加了题目链接 目录 注意:加了题目链接 一.打表模拟法 介绍 1. 算式问题 题目描述 解析与代码演示 2. 求值 题目描述 解析与代码演示 3. 既约分数 题目描述 解析与代码演示 4. 天干 ...
- 蓝桥杯真题2017-2021
刷完近几年真题,感觉理解完之后,拿奖问题不大,本人这次获得2022年蓝桥杯javaB组省一,以下是历年javaB组省赛题目. 文章目录 2017年真题 一.购物单 二.纸牌三角形 三.承压计算 四.魔 ...
- c语言六角填数蓝桥杯答案,六角填数(全排列)蓝桥杯真题
六角填数(全排列)蓝桥杯真题 六角填数(全排列)蓝桥杯真题 如图所示六角形中填入1-12的数字,使每条直线上的数字和相等,图中已经填好了3个数字,请你计算*号数字是多少 蓝桥杯老套路,经常这样考全排列 ...
最新文章
- Kafka为什么这么快?
- 算法----------字符串的排列(Java版本)
- 【数据分析】33个热门数据分析软件,你都用过哪些?
- go mod require + replace解决本地包依赖问题
- boost::hana::Comparable用法的测试程序
- NodeJs基础之字节操作、路径操作和文本操作
- SAP建议客户将UI技术迁移到Fiori的六大原因
- 7年老Android一次操蛋的面试经历,深度好文
- webso员ket php,客戶端和PHP後端通信:Sokets,Stream,TCP/UDP?
- linux 基础学习之目录与文件处理命令
- 7.从Paxos到Zookeeper分布式一致性原理与实践---Zookeeper 技术内幕
- Atitit.加密算法 des aes 各个语言不同的原理与解决方案java php c#
- Perl语言入门笔记(一)
- 苏州科技大学计算机考研资料汇总
- Debian10校准时间同步系统时间和硬件时间的方法
- 记一次开发环境redis出现key丢失排查
- 摄像机服务器端返回消息错误,_平安城市_视频监控(本科)毕业论文设计.doc
- html5 怎么插指南针,分享 HT 实用技巧:实现指南针和 3D 魔方导航
- 实木地板被机器人弄成坑_钱花光哭成泪人,28个让人撕心裂肺装修坑,不注意新房就会被毁!...
- 指针里的*符号是要靠近变量类型还是要靠近变量名称?