实用指南:老题新解|素数对

news/2025/9/26 13:26:07/文章来源:https://www.cnblogs.com/wzzkaifa/p/19113301

《信息学奥赛一本通》第131题:素数对

题目描述
定义两个相差为 222 的素数称为素数对,如 5557,177,177,17191919 等,要求找出所有两个数均不大于 nnn 的素数对。
输入格式
一个正整数 nnn1≤n≤100001 \le n \le 100001n10000
输出格式
所有小于等于 nnn 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出 empty
输入输出样例 #1
输入 #1
10
输出 #1
3 5
5 7
输入输出样例 #2
输入 #2
100
输出 #2
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
输入输出样例 #3
输入 #3
3
输出 #3
empty

大家好,我是莫小特。
这篇文章给大家带来《信息学奥赛一本通》中的第 131 题:素数对。

image.png

一、题目描述

洛谷的题号是:B2132 素数对

image.png

二、题意分析

这道题是信息学奥赛一本通练习题的第 131 题。

根据输入格式的描述,输入只有一个整数 n,数据范围:1≤n≤100001 \le n \le 100001n10000,使用 int 类型。

int n;
cin>>n;

输入完成后,我们来分析题意,根据题目描述,我们需要找到两个相差为 2 的素数对,并将所有不大于 n 的素数对输出。

所以我们需要使用 for 循环变量遍历,从 2 开始到 n。

for(int i=2;i<=n;i++)
{
}

中间加上判断素数的函数,只要符合就输出数据。

素数的函数写法如下,孰能生巧,直接写出,根据素数的特点写出函数:

bool pdss(int k)
{
if(k==1) return false;
else
{
//除1和本身的数以外能找到整除的数
for(int i=2;i<k;i++)
{
if(k%i==0) return false;
}
return true;
//返回真
}
}

将函数添加进主函数中。

for(int i=2;i<=n;i++)
{
//符合素数特点 输出i和i+2
if(pdss(i)==true&&
pdss(i+2)==true)
{
cout<<i<<
" "<<i+2<<endl;
}
}

如果不存在素数对,就输出 empty,可以加上一个标记,如果找到就标记为一个数,最后判断这个数据即可。

int flag=1;
for(int i=2;i<=n;i++)
{
//符合素数特点 输出i和i+2
if(pdss(i)==true&&
pdss(i+2)==true)
{
cout<<i<<
" "<<i+2<<endl;
//找到数据将数据置为其他数
flag=0;
}
}

判断 flag 是否为 1,如果为 1,则输出 empty。

if(flag==1)
{
cout<<
"empty";
//不存在就输出empty
}

按照样例输入对数据进行验证。

image.png

符合样例输出,到网站提交测评。

image.png

发现有两个错误点,检查代码,发现是主函数的循环出现了问题,因为要输出 i+2,而 i+2 要到 n 就停止,但循环中却写了 n,因此最终的 i 会到 n+2 ,所以在主函数中修改。

for(int i=2;i<=n-2;i++)

再次提交。

image.png

测试通过!

三、完整代码

该题的完整代码如下:

#include<iostream>#include<bits/stdc++.h>using namespace std;bool pdss(int k){if(k==1) return false;else{//除1和本身的数以外能找到整除的数for(int i=2;i<k;i++){if(k%i==0) return false;}return true;//返回真}}int main(){int n;cin>>n;int flag=1;for(int i=2;i<=n-2;i++){//符合素数特点 输出i和i+2if(pdss(i)==true&&pdss(i+2)==true){cout<<i<<" "<<i+2<<endl;//找到数据将数据置为其他数flag=0;}}if(flag==1){cout<<"empty";//不存在就输出empty}return 0;}

四、总结

本题考察了素数判定与循环遍历的应用,主要涵盖以下知识点:

(1)通过自定义函数判断素数,利用除法特性进行判定。

(2)使用 for 循环遍历 2 到 n-2,避免越界访问 i+2。

(3)利用逻辑与运算符 && 同时判断 i 和 i+2 是否为素数。

(4)通过 flag 标记是否存在素数对,最后根据 flag 的值决定输出结果。

(5)熟悉基本输入输出和条件判断的使用方法。

常见易错点:

(1)循环范围写成 i <= n,导致输出越界(i+2 > n)。

(2)素数判定函数未正确处理 k=1 或边界情况,可能误判。

(3)素数判断写成 for (int i=2; i<k; i++),效率较低,若未优化到 sqrt(k) 容易超时(大数据时)。

(4)忘记设置 flag 或 flag 初值错误,导致没有素数对时输出异常。

(5)输出格式不符合要求,例如遗漏空格或未换行。

---end---

如果你觉得这篇文章对你有帮助,欢迎点赞、收藏、关注我哦!
如果有更好的方法也可以在评论区评论哦,我都会看哒~

我们下集见~

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

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

相关文章

人文领域的创新乏力:当价值内卷遇上元人文AI的破局之光

人文领域的创新乏力:当价值内卷遇上元人文AI的破局之光 当我们惊叹于科技领域的颠覆式创新时,却不得不面对一个尴尬的对比:人文领域的创新陷入了深度的乏力。 这里的"人文领域",指的是塑造我们社会形态、…

网站备份数据库做网站的网站犯法吗

试试了一下在 .NET中通过如下语句Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);就可以使页面的缓存失效&#xff0c;每次都需要获取新页面。 转载于:https://www.cnblogs.com/0000/archive/2009/11/11/1601036.html

查找公司信息的网站环保网站建设价格

注意&#xff0c;以下内容基于前面完整版的根文件系统&#xff0c;因此需要先完成前面的步骤。 1、明确sample文件夹的位置 海思SDK有很多sample&#xff0c;以方便开发人员的参阅。sample文件夹位于/package/mpp/目录下。 其中/package/mpp/sample/venc目录完成了视频的采集以…

网页制作门户网站案例气象网站建设需求方案

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、移植前的准备工作 1、搭建开发环境 &#xff08;1&#xff09;虚拟机运行着ubuntu14.04系统。 &#xff08;2&#xff09;X210开发板运行着linux内核镜像、QT4.8文件系统镜像。相关的镜像文件在…

自己公司设计一个网站电子商务网站建设与制作

Oracle 的导入实用程序 (Import utility) 允许从数据库提取数据&#xff0c;并且将数据写入操作系统文件。 imp 使用的基本格式&#xff1a; imp[username[/password[service]]] &#xff0c;以下例举 imp 常用用法。 1. 获取帮助 imp helpy 2. 导入一个完整数据库 imp sy…

SimCC: a Simple Coordinate Classification Perspective for Human Pose Estimation

[ECCV22] 基于坐标分类的关键点检测SimCC: a Simple Coordinate Classification Perspective for Human Pose Estimation SimCC(ECCV22):基于坐标分类计算关键点,即计算每个关键点在x轴、y轴上的概率。 代码仓库 注…

外贸看的英文网站鞍山最新消息

​FPGA高速接口有哪些学习途径&#xff0c;这里不得不提下我们宸极教育FPGA课程&#xff0c; FPGA课程5.0 版&#xff1a;Xilinx体系高速接口项目实操&#xff0c;全新升级&#xff0c;课程完全根据企业招聘要求&#xff0c;项目实操设置&#xff0c;适应目前市场的求职招聘要…

大连网站建设设计公司注册好了怎么做网站

一、前言 这篇文章主要介绍了CentOS 7.6环境下Nginx下载安装配置使用教程&#xff0c;学习nginx的朋友可以参考一下 二、下载 使用如下命令进行下载 wget http://nginx.org/download/nginx-1.23.3.tar.gz 三、安装nginx需要的环境库 项目首先我们需要安装gcc、gcc-c、zlib、…

北京融安特智能科技营销型网站wordpress archive

目录 对称加密算法 AES &#xff08;ECB模式&#xff09; AES(CBC 模式)。 非对称加密 对称加密算法 对称加密算法&#xff0c;是使用相同的密钥进行加密和解密。使用对称加密算法来加密双方的通信的话&#xff0c;双方需要先约定一个密钥&#xff0c;加密方才能加密&#…

全景网站制作教程现在还有做系统的网站吗

1.SELECT语句 从一个表或多个表中检索信息 2.检索单个列 输入&#xff1a; SELECT prod_name FROM Products; 输出&#xff1a; 没有过滤&#xff0c;也没有排序&#xff0c;输出数据顺序可能不同。 3.检索多个列 输入&#xff1a; SELECT prod_id, prod_name, prod_price F…

10.1.1 启用python达成第一个遗传算法

10.1.1 启用python达成第一个遗传算法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

[iOS] OC高级编程 - 引用计数 (1) - 详解

[iOS] OC高级编程 - 引用计数 (1) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

Docker Docker Compose 完整入门与实用技巧 - 教程

Docker & Docker Compose 完整入门与实用技巧 - 教程2025-09-26 13:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

建网站过程网站制作报价优惠

[html] 说说你对属性data-的理解 data- 属性是H5新增的自定义属性&#xff0c;也可以用来存储值。我个人用的不多&#xff0c;这个data- 属性倒是和vue中的v-bind 功能相似&#xff0c; 自定义属性&#xff0c;绑定数据。也和上面说的一样可以通过js进行获取使用个人简介 我是…

营销型网站建设合同戚墅堰做网站

云原生之使用Docker部署RSS阅读器Huntly 一、Huntly介绍1.1 Huntly简介1.2 Huntly功能2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Huntly镜像五、部署Huntly5.1 创建挂载目录5.2 创建Hun…

达州网站建设的公司怎么自己搭建梯子

最近在练习搭建网站&#xff0c;遇到游览器找不到服务器上的php文件的问题。后来查找发现&#xff0c;apache文档根目录跟apache虚拟主机文档根目录不同&#xff0c;服务器开启了虚拟主机功能。这导致游览器找不到php文件。 使用的环境是LAMP&#xff0c;它 的操作系统和软件版…

西安网站建设公司电话wordpress 删除 评论

事件以及事件相关的兼容性问题 事件最早是在 IE3 和 Navigator2 中出现的&#xff0c;当时是作为分担服务器运算负担的一种手段。要实现和网页的交互&#xff0c;就需要通过 JavaScript 里面的事件来实现。 每次用户与一个网页进行交互&#xff0c;例如点击链接&#xff0c;按下…

网站模板兼容手机端灰色推广引流联系方式

文章目录 &#x1f4c4;前言一. Mybatis简介✈️1. 什么是Mybatis&#x1f680;2. 为什么使用Mybatis 二. Mybatis快速入门&#x1f346;1. mybatis使用前准备1.1 创建springboot项目并引入相关依赖1.2 在 application.ym中进行数据源的配置1.3 创建数据表&#xff0c;准备表数…

杭州网站建设哪个好想创建一个网站

&#x1f33c;未封装 在项目中往往一个页面存在着要联调好几个接口&#xff0c;此时用下面的写法就会显得代码很冗余 // 向给定ID的用户发起请求 axios.get(/user?ID123456,{ params: { //发送请求的数据ID: 123456 } }) .then(function (response) { // 处理成功情…

网站详情页用什么软件做如何制作自己的网站模版

理解依赖属性 依赖属性支持的特征包括&#xff1a;动画、数据绑定、样式。由WPF元素暴露的属性大部分都是依赖属性。依赖属性和常规属性的使用方法相同。 WPF设计了依赖属性支持其特有的动态特性&#xff0c;并且不干扰其他系统的.net代码。 定义依赖属性 创造一个依赖属性的语…