算法练习题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++) {  // 等差数列长度为 10
        if (!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) 的所有奇数是否能整除 n
        for (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++) {  // 检查等差数列长度为 10
            if (!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.mfbz.cn/a/882871.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx如何拦截未经授权的跳转

nginx如何拦截未经授权的跳转 背景准备好一个网站准备好引用网站配置nginx拦截效果 背景 在现实工作中往往有一些企业或人未取得授权但是转载或挂载我们的网址。那么有些要求严格或者有其他原因的情况下不希望这些链接正常访问。所以就有了这样的需求。前提是咱们的网站什么的是…

如何把python(.py或.ipynb)文件打包成可运行的.exe文件?

将 Python 程序打包成可执行的 .exe 文件&#xff0c;通常使用工具如 PyInstaller。这是一个常用的 Python 打包工具&#xff0c;可以将 Python 程序打包成独立的可执行文件&#xff0c;即使没有安装 Python 也能运行。 步骤&#xff1a; 1. 安装 PyInstaller 使用 conda 安…

速通LLaMA3:《The Llama 3 Herd of Models》全文解读

文章目录 概览论文开篇IntroductionGeneral OverviewPre-TrainingPre-Training DataModel ArchitectureInfrastructure, Scaling, and EfficiencyTraining Recipe Post-TrainingResultsVision ExperimentsSpeech Experiments⭐Related WorkConclusionLlama 3 模型中的数学原理1…

docker搭建个人网盘,支持多种格式,还能画图,一键部署

1&#xff09;效果 2&#xff09;步骤 2.1&#xff09;docker安装 docker脚本 bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrorsmain/DockerInstallation.sh)docker-compose脚本 curl -L "https://github.com/docker/compose/releases/late…

【计网】从零开始掌握序列化 --- 实现网络计算器项目

​​​请各位保持头脑清醒&#xff0c; ​​​读些好书&#xff0c;做点有用的事&#xff0c; ​​​快快乐乐地生活。 ​​​ --- 斯蒂芬金 《肖申克的救赎》--- 从零开始掌握序列化 1 知识回顾2 服务器框架3 客户端框架4 运行测试 1 知识回顾 前面两篇文章学习中基础知识…

蓝队技能-应急响应篇Web内存马查杀JVM分析Class提取诊断反编译日志定性

知识点&#xff1a; 1、应急响应-Web内存马-定性&排查 2、应急响应-Web内存马-分析&日志 注&#xff1a;传统WEB类型的内存马只要网站重启后就清除了。 演示案例-蓝队技能-JAVA Web内存马-JVM分析&日志URL&内存查杀 0、环境搭建 参考地址&#xff1a;http…

常见统计量与其抽样分布

什么是统计量 我们首先给出统计量的定义:设 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1​,X2​,⋯,Xn​ 为来自于总体X的一个样本&#xff0c; g ( X 1 , X 2 , ⋯ , X n ) g(X_1,X_2,\cdots,X_n) g(X1​,X2​,⋯,Xn​) 为关于 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X…

Python | Leetcode Python题解之第434题字符串中的单词数

题目&#xff1a; 题解&#xff1a; class Solution:def countSegments(self, s):segment_count 0for i in range(len(s)):if (i 0 or s[i - 1] ) and s[i] ! :segment_count 1return segment_count

【JS】严格模式/非严格模式的区别

JS的严格模式和非严格模式 js运行有两种模式&#xff1a;一种是普通模式&#xff1b;一种是严格模式。 严格模式是ES5添加的&#xff0c;是比普通模式多一部分的js规则。如果在ES5之前js解析引擎&#xff0c;会忽略严格模式。 js一般默认是普通模式&#xff0c;ES6的模块和Cla…

数据结构 ——— 数组 nums 包含了从 0 到 n 的所有整数,但是其中缺失了一个,请编写代码找出缺失的整数,并且在O(N)时间内完成

目录 题目要求 代码实现 方法1&#xff08;异或法&#xff09;&#xff1a; 异或算法的时间复杂度&#xff1a; 方法2&#xff08;等差数列公式&#xff09;&#xff1a; 等差数列公式的时间复杂度&#xff1a; 题目要求 整型数组 nums 包含了从 0 到 n 的所有整数&…

VPN概述

目录 定义&#xff1a; VPN的分类 VPN的主要应用场景 GRE VPN概念 GRE VPN的优缺点 GRE VPN应用场景和配置 GRE VPN配置流程 Router A&#xff1a; Router B&#xff1a; 定义&#xff1a; 虚拟专用网络(VPN)是一种通过公用网络线路建立私有网络&#xff0c;用于传输私…

UE学习篇ContentExample解读------Blueprint_Communication-上

文章目录 总览描述批次阅览1.1 Basic communication with a target blueprint1.2 Basic communication via actor casting1.3 Blueprint communication via actor casting to child Blueprint1.4 Communicating with all actors of a specific class 概念总结致谢&#xff1a; …

VulnHub-Narak靶机笔记

Narak靶机笔记 概述 Narak是一台Vulnhub的靶机&#xff0c;其中有简单的tftp和webdav的利用&#xff0c;以及motd文件的一些知识 靶机地址&#xff1a; https://pan.baidu.com/s/1PbPrGJQHxsvGYrAN1k1New?pwda7kv 提取码: a7kv 当然你也可以去Vulnhub官网下载 一、nmap扫…

【专题】2024年中国白酒行业数字化转型研究报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37755 消费人群趋于年轻化&#xff0c;消费需求迈向健康化&#xff0c;消费场景与渠道走向多元化&#xff0c;这些因素共同驱动企业凭借数据能力来适应市场的变化。从消费市场来看&#xff0c;消费群体、需求、场景及渠道皆展现出与…

PhpStudy | PHP 版本切换流程

关注这个软件的其他相关笔记&#xff1a;PhpStudy —— README-CSDN博客 在使用多样化的 PHP Web 应用程序时&#xff0c;选择合适的 PHP 版本至关重要。例如&#xff0c;一些老旧的应用程序可能是基于早期版本的 PHP 开发的&#xff0c;如果使用最新版本的 PHP 来运行&#xf…

【YOLO学习】YOLOv1详解

文章目录 1. 概述2. 算法流程3. 网络结构4. 损失函数 1. 概述 1. YOLO 的全称是 You Only Look Once: Unified, Real-Time Object Detection。YOLOv1 的核心思想就是利用整张图作为网络的输入&#xff0c;直接在输出层回归 bounding box 的位置和 bounding box 所属的类别。简单…

执行网络攻击模拟的 7 个步骤

在进攻和防守策略方面&#xff0c;我们可以从足球队和美式足球队身上学到很多东西。球员们会分析对方球队的策略&#xff0c;找出弱点&#xff0c;相应地调整进攻策略&#xff0c;最重要的是&#xff0c;练习、练习、再练习。作为最低要求&#xff0c;网络安全部门也应该这样做…

论文笔记(四十六)RobotGPT: Robot Manipulation Learning From ChatGPT

xx RobotGPT: Robot Manipulation Learning From ChatGPT 文章概括摘要I. 介绍II. 相关工作III. 方法论A. ChatGPT 提示机器人操作B. 机器人学习 IV. 实验A. 衡量标准B. 实验设置C. 模拟实验D. 真实机器人实验E. AB测试 V. 结论 文章概括 引用&#xff1a; article{jin2024r…

gateway--网关

在微服务架构中&#xff0c;Gateway&#xff08;网关&#xff09;是一个至关重要的组件&#xff0c;它扮演着多种关键角色&#xff0c;包括路由、负载均衡、安全控制、监控和日志记录等。 Gateway网关的作用 统一访问入口&#xff1a; Gateway作为微服务的统一入口&#xff0c…

Qt窗口——QMenuBar

文章目录 QMenuBar示例演示给菜单栏设置快捷键给菜单项设置快捷键添加子菜单添加分割线添加图标 QMenuBar Qt中采用QMenuBar来创建菜单栏&#xff0c;一个主窗口&#xff0c;只允许有一个菜单栏&#xff0c;位于主窗口的顶部、主窗口标题栏下面&#xff1b;一个菜单栏里面有多…