算法练习题26——等差素数数列 (2017年蓝桥杯试题B)

题目描述

我们知道,素数是只能被1和它自身整除的正整数,比如:2, 3, 5, 7, 11, 13, 17, 19, 23, 29 等。

类似地,如果一个数列中的所有元素都是素数,并且这些素数构成了一个等差数列(即公差相等),这样的数列称为等差素数数列。比如,数列:7, 37, 67, 97, 127, 157 就是一个等差素数数列,它的公差为 30,长度为 6。

2004年,数学家格林与陶哲轩证明了任意长度的等差素数数列是存在的,这是数论中的一项重大成果。

现在,你的任务是编写一个程序,找出长度为10的等差素数数列,并且这个数列的公差最小。你需要输出该等差数列的公差值。

输出:

你需要输出一个整数,这个整数是长度为10的等差素数数列的最小公差

注意

        输出只有一个整数,不能包含其他多余的说明或内容。

示例:

题目给出的答案参考:

210

代码示例

c++

#include<bits/stdc++.h>
using namespace std;const int N = 10000;  // 素数查找的上限范围// 判断一个数是否是素数的函数
bool isPrime(int n) {if (n <= 1) return false;  // 1 和更小的数不是素数if (n == 2) return true;   // 2 是素数if (n % 2 == 0) return false;  // 偶数不是素数(除了2)// 检查从 3 到 sqrt(n) 的所有奇数,是否有能整除 n 的数for (int i = 3; i <= sqrt(n); i += 2) {if (n % i == 0) {return false;  // 有其他数能整除,n 不是素数}}return true;  // 如果没有找到任何能整除的数,n 是素数
}// 判断从 n 开始,公差为 cha 的等差数列中的 10 个数是否都是素数
bool ok(int n, int cha) {for (int i = 0; i < 10; i++) {  // 等差数列长度为 10if (!isPrime(n + i * cha)) {  // 检查 n + i * cha 是否是素数return false;  // 如果有一个不是素数,则返回 false}}return true;  // 如果 10 个数全是素数,返回 true
}int main() {// 不断增大公差 cha,从 2 开始,寻找符合条件的最小公差for (int cha = 2;; cha++) {  // 无限循环,从小的公差开始for (int i = 2; i < N; i++) {  // 遍历从 2 到 N 的每个数 i,尝试作为等差数列的起始点if (ok(i, cha)) {  // 如果从 i 开始,公差为 cha 的 10 个数都是素数cout << cha << endl;  // 输出找到的最小公差return 0;  // 结束程序}}}return 0;
}

java

import java.util.*;public class Main {// 判断一个数是否是素数public static boolean isPrime(int n) {if (n <= 1) return false;  // 1 和小于1的数不是素数if (n == 2) return true;   // 2 是素数if (n % 2 == 0) return false;  // 偶数不是素数(2除外)// 检查从 3 到 sqrt(n) 的所有奇数是否能整除 nfor (int i = 3; i <= Math.sqrt(n); i += 2) {if (n % i == 0) {return false;  // 如果找到能整除的数,n 不是素数}}return true;  // 如果没有找到任何能整除的数,n 是素数}// 判断从 n 开始,公差为 cha 的等差数列中的 10 个数是否都是素数public static boolean ok(int n, int cha) {for (int i = 0; i < 10; i++) {  // 检查等差数列长度为 10if (!isPrime(n + i * cha)) {  // 检查每个 n + i * cha 是否是素数return false;  // 如果有一个数不是素数,返回 false}}return true;  // 如果 10 个数全是素数,返回 true}public static void main(String[] args) {int N = 10000;  // 素数查找的上限范围// 不断增大公差 cha,从 2 开始,寻找符合条件的最小公差for (int cha = 2;; cha++) {  // 无限循环,从小的公差开始for (int i = 2; i < N; i++) {  // 遍历从 2 到 N 的每个数 i,尝试作为等差数列的起点if (ok(i, cha)) {  // 如果从 i 开始,公差为 cha 的 10 个数都是素数System.out.println(cha);  // 输出找到的最小公差return;  // 结束程序}}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《微信小程序实战(4) · 地图导航功能》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

240924-通过服务器代理ip地址及port端口wget等下载文件

A. 如何下载 在服务器上设置了代理 IP 和端口后&#xff0c;可以使用以下命令行格式通过 wget 下载文件&#xff1a; wget -e use_proxyyes -e http_proxyhttp://代理IP:端口号 目标文件URL或者&#xff0c;如果你使用 HTTPS 协议&#xff0c;可以使用以下命令&#xff1a; …

数据结构应试-1

1. 好像是错的 2. n个元素&#xff0c;插入的可能有n1个位置&#xff0c;所以n&#xff08;n1&#xff09;/2*(n1)2/n 3. 4. 5. 6. 假设我们有一个循环队列&#xff0c;数组的长度为 n 10&#xff0c;并且当前队头指针 f 的位置是 2&#xff0c;队尾指针 r 的位置是 8。我们需…

【开源免费】基于SpringBoot+Vue.JS墙绘产品展示交易平台(JAVA毕业设计)

本文项目编号 T 049 &#xff0c;文末自助获取源码 \color{red}{T049&#xff0c;文末自助获取源码} T049&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

携手SelectDB,观测云实现性能与成本的双重飞跃

在刚刚落下帷幕的2024云栖大会上&#xff0c;观测云又一次迎来了全面革新。携手SelectDB&#xff0c;实现了技术的飞跃&#xff0c;这不仅彰显了观测云在监控观测领域的技术实力&#xff0c;也预示着我们可以为全球用户提供更加高效、稳定的数据监测与分析服务。这一技术升级&a…

Golang | Leetcode Golang题解之第435题无重叠区间

题目&#xff1a; 题解&#xff1a; func eraseOverlapIntervals(intervals [][]int) int {n : len(intervals)if n 0 {return 0}sort.Slice(intervals, func(i, j int) bool { return intervals[i][1] < intervals[j][1] })ans, right : 1, intervals[0][1]for _, p : ra…

【计算机视觉】YoloV8-训练与测试教程

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f4ab; 欢迎来到我的学习笔记&#xff01; 制作数据集 Labelme 数据集 数据集选用自己标注的&#xff0c;可参考以下&#xff1a…

面经 | css

CSS CSSpositiondisplayflex: 1元素居中flexalign-itemjustify-contentabsolutemargin:auto align-item vs vertical-align CSS position static: 默认。就是自然顺序&#xff0c;从上到下&#xff0c;从左到右&#xff0c;爱着你排列&#xff1b;absolute&#xff1a;绝对。…

如何备份SqlServer数据库

第一步&#xff1a;登录你要备份的服务器数据库ssms 第二步&#xff1a;选择你要备份的数据库 此处已PZ-SJCS 数据库为例 右键该数据库-->任务-->备份 第三步&#xff1a;选择你备份的类型备份组件等&#xff0c;目标磁盘 &#xff0c;点击添加选择将你备份的文件备份那…

数据结构~二叉搜索树

文章目录 一、二叉树搜索的概念二、二叉树搜索的结构二叉树搜索的性能分析二叉树搜索的插入二叉树搜索的查找二叉树搜索的删除 三、二叉搜索树key和key/value使用场景四、二叉树搜索的练习将二叉搜索树就地转化为已排序的双向循环链表从前序与中序遍历序列构造二叉树二叉树的前…

茶思屋直播|TinyEngine+AI:聚焦主航道,在实践中探索低代码技术黑土地

低代码引擎使能开发者定制低代码平台。它是低代码平台的底座&#xff0c;提供可视化搭建页面等基础能力&#xff0c;既可以通过线上搭配组合&#xff0c;也可以通过cli创建个人工程进行二次开发&#xff0c;实时定制出自己的低代码平台。适用于多场景的低代码平台开发&#xff…

GIS开发常用的开源地图数据框架有哪些?

学完Web前端开发&#xff0c;还需要掌握哪些内容&#xff1f;本篇文章再给大家主要讲讲针对WebGIS开发的地图和可视化数据库。 Echarts ECharts是一个使用 JavaScript 实现的开源可视化库。它可以流畅的运行在 PC 和移动设备上&#xff0c;兼容当前绝大部分浏览器&#xff08;…

LTE SSS产生过程中z序列的介绍和MATLAB以及C语言实现

参考3GPP 36.211 6.11章节 接上期介绍完LTE SSS产生过程中加扰序列c的产生和代码实现&#xff0c;本期介绍一下LTE SSS产生过程中加扰序列z的原理和MATLAB以及C语言的实现。 SSS产生过程中用到的加扰Z1序列有两个&#xff0c;一个是 另一个是 两个序列是由一个m序列z移位而来…

“一屏显江山”,激光显示重构「屏中世界」

【潮汐商业评论/原创】 2024年国庆期间&#xff0c;曾感动过无数国人的舞蹈诗剧《只此青绿》改编的同名电影即将上映&#xff0c;而这一次观众们不必走进电影院&#xff0c;在家里打开官方合作的海信激光电视也能享受到同等的视听效果&#xff0c;这是激光电视在观影场景领域的…

【C++ 基础数学 】2121. 2615相同元素的间隔之和|1760

本文涉及的基础知识点 基础数学 LeetCode2121. 相同元素的间隔之和 难度分&#xff1a;1760 令2165&#xff0c;和此题几乎相等。 给你一个下标从 0 开始、由 n 个整数组成的数组 arr 。 arr 中两个元素的 间隔 定义为它们下标之间的 绝对差 。更正式地&#xff0c;arr[i] 和…

Linux 进程2

环境变量 再Linux操作系统中一切皆文件&#xff0c;这个环境变量自然也是一个文件&#xff0c;它的作用是辅助我们使用操作系统还可以辨识我们是什么用户(一般用户&#xff0c;root用户)。 env是读取完整环境变量的指令&#xff0c;里面记录了许多我登录操作系统所用的用户的信…

apache paimon简介(官翻)

介绍 如下架构所示: 读/写操作: Paimon 支持多样化的数据读写方式,并支持 OLAP 查询。 读取: 支持从历史快照(批处理模式)中消费数据,从最新偏移量(流处理模式)中读取数据,或以混合方式读取增量快照。写入: 支持从数据库变更日志(CDC)进行流式同步,从离线数据中…

构建高效企业客户管理系统:SpringBoot应用

1 绪论 1.1研究背景 随着网络不断的普及发展&#xff0c;企业客户管理系统依靠网络技术的支持得到了快速的发展&#xff0c;首先要从员工的实际需求出发&#xff0c;通过了解员工的需求开发出具有针对性的首页、个人中心、员工管理、客户信息管理、行业类型管理、项目信息管理、…

LabVIEW界面输入值设为默认值

在LabVIEW中&#xff0c;将前面板上所有控件的当前输入值设为默认值&#xff0c;可以通过以下步骤实现&#xff1a; 使用控件属性节点&#xff1a;你可以创建一个属性节点来获取所有控件的引用。 右键点击控件&#xff0c;选择“创建” > “属性节点”。 设置属性节点为“D…

HDMI20协议解析_Audio_Clock_Regeneration

HDMI20协议解析_Audio_Clock_Regeneration 1.版本说明 日期作者版本说明20240918风释雪初始版本 2.概述 当通过HDMI传输音频信号时&#xff0c;Audio Clock Regeneration&#xff08;ACR&#xff09;是必须要传输的数据包之一&#xff1b; HDMI传输过程中&#xff0c;音频采样…