CSP/信奥赛C++语法基础刷题训练(23):洛谷P1217:[USACO1.5] 回文质数 Prime Palindromes

CSP/信奥赛C++语法基础刷题训练(23):洛谷P1217:[USACO1.5] 回文质数 Prime Palindromes

在这里插入图片描述

题目描述

因为 151 151 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 151 151 是回文质数。

写一个程序来找出范围 [ a , b ] ( 5 ≤ a < b ≤ 100 , 000 , 000 ) [a,b] (5 \le a < b \le 100,000,000) [a,b](5a<b100,000,000)(一亿)间的所有回文质数。

输入格式

第一行输入两个正整数 a a a b b b

输出格式

输出一个回文质数的列表,一行一个。

样例 #1

样例输入 #1

5 500

样例输出 #1

5
7
11
101
131
151
181
191
313
353
373
383

提示

Hint 1: Generate the palindromes and see if they are prime.

提示 1: 找出所有的回文数再判断它们是不是质数(素数).

Hint 2: Generate palindromes by combining digits properly. You might need more than one of the loops like below.

提示 2: 要产生正确的回文数,你可能需要几个像下面这样的循环。

题目翻译来自NOCOW。

USACO Training Section 1.5

产生长度为 5 5 5 的回文数:

for (d1 = 1; d1 <= 9; d1+=2) {    // 只有奇数才会是素数for (d2 = 0; d2 <= 9; d2++) {for (d3 = 0; d3 <= 9; d3++) {palindrome = 10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1;//(处理回文数...)}}}

66分代码

#include<bits/stdc++.h>
using namespace std;
/*思路:(70分:部分测试点超时) 
函数1:判断一个数是否是质数
函数2:判断一个数是否是回文数 
*/
int a,b;
//判断一个数是否是质数
bool isPrime(int x){if(x<=1) return false;for(int i=2;i<=sqrt(x);i++){if(x%i==0) return false;}return true;
}
//判断一个数是否是回文数
bool isHw(int x){int tmp=x;//记录x的值用于过程运算 int y=0;while(tmp){y=y*10+tmp%10;tmp/=10;}if(x==y) return true;else return false;
}
int main(){cin>>a>>b;for(int i=a;i<=b;i++){if(isPrime(i) && isHw(i)){cout<<i<<endl;}}return 0;
} 

88分代码

#include<bits/stdc++.h>
using namespace std;
/*思路:(88分:部分测试点超时) 
函数1:判断一个数是否是质数
函数2:判断一个数是否是回文数 
---优化思路:先判断是否是回文,再判断是否是质数---- 
---因为质数判断的函数时间复杂度较高,而回文判断的函数时间复杂度较低---- 
*/
int a,b;
//判断一个数是否是质数
bool isPrime(int x){if(x<=1) return false;for(int i=2;i<=sqrt(x);i++){if(x%i==0) return false;}return true;
}
//判断一个数是否是回文数
bool isHw(int x){int tmp=x;//记录x的值用于过程运算 int y=0;while(tmp){y=y*10+tmp%10;tmp/=10;}if(x==y) return true;else return false;
}
int main(){cin>>a>>b;for(int i=a;i<=b;i++){if(isHw(i) && isPrime(i)){//优化的关键修改在这儿 cout<<i<<endl;}}return 0;
} 

100分代码

#include<bits/stdc++.h>
using namespace std;
/*思路:(100分)        
---新增优化:减少b的值--- >b在10^7到10^8之间时,位数是偶数位,不可能为回文数素数>除了11以外,一个数的位数是偶数的话,不可能为回文数素数。>如果一个回文素数的位数是偶数,则它的奇数位上的数字和与偶数位上的数字和必然相等;>根据数的整除性理论,容易判断这样的数肯定能被11整除,所以它就不可能是素数。
*/
int a,b;
//判断一个数是否是质数
bool isPrime(int x){if(x<=1) return false;for(int i=2;i<=sqrt(x);i++){if(x%i==0) return false;}return true;
}
//判断一个数是否是回文数
bool isHw(int x){int tmp=x;//记录x的值用于过程运算 int y=0;while(tmp){y=y*10+tmp%10;tmp/=10;}if(x==y) return true;else return false;
}
int main(){cin>>a>>b;b=min(b,9999999); //优化b的最大值 for(int i=a;i<=b;i++){if(isHw(i) && isPrime(i)){//优化的关键修改在这儿 cout<<i<<endl;}}return 0;
} 

文末彩蛋:

点击王老师青少年编程主页有更多精彩内容

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

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

相关文章

【探寻密码的奥秘】-001:解开密码的神秘面纱

目录 1、密码学概述1.1、概念1.2、目的1.3、应用场景 2、密码学的历史2.1、第一时期&#xff1a;古代密码时代2.2、第二时期&#xff1a;机械密码时代2.3、第三时期&#xff1a;信息密码时代2.4、第四时期&#xff1a;现代密码时代 3、密码学的基本概念3.1、一般通信系统3.2、保…

文件操作详解(1)

1.文件&#xff0c;文件与流&#xff0c;文件指针 2.文件的打开与关闭 3.文件的读写 文件的顺序读写&#xff1a; &#xff08;1&#xff09;fgetc 和 fputc &#xff08;2&#xff09;fgets 和 fputs &#xff08;3&#xff09;fscanf 和 fprintf &#xff08;4&#x…

基于YOLOv8深度学习的人体姿态摔倒检测与语音报警系统(PyQt5界面+数据集+训练代码)

随着人口老龄化进程的加速&#xff0c;摔倒事故逐渐成为威胁老年人健康和安全的主要问题之一。研究表明&#xff0c;摔倒不仅可能导致老年人骨折、头部受伤等严重的身体损伤&#xff0c;还可能引发心理恐惧和行动能力下降&#xff0c;从而降低其生活质量和独立性。如何快速、准…

jmeter5.6.3安装教程

一、官网下载 需要提前配置好jdk的环境变量 jmeter官网&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 选择点击二进制的zip文件 下载成功后&#xff0c;默认解压下一步&#xff0c;更改安装路径就行(我安装在D盘) 实用jmeter的bin目录作为系统变量 然后把这…

差分进化算法原理与复现

目录 摘要1、算法原理1.1、种群初始化1.2、变异1.3、交叉1.4、选择 2、算法实现2.1、种群初始化2.2、变异2.3、交叉2.4、选择2.5、选取终代种群中最优秀个体 摘要 如何选取一组最佳的参数&#xff0c;使得代价函数值最优&#xff1f;这是优化算法做的事&#xff0c;一个直觉的…

搜索引擎中广泛使用的文档排序算法——BM25(Best Matching 25)

在搜索场景中&#xff0c;BM25能计算每个文档与查询的匹配度&#xff0c;从中找出最相关的文档&#xff0c;并按相关性高低排序展示。 要理解BM25&#xff0c;需要掌握以下几个关键概念&#xff1a; 1. 词频&#xff08;Term Frequency, TF&#xff09;&#xff1a;某关键词在文…

C语言笔记(自定义类型:结构体、枚举、联合体 )

前言 本文对自定义类型的结构体创建、使用、结构体的存储方式和对齐方式&#xff0c;枚举的定义、使用方式以及联合体的定义、使用和存储方式展开叙述&#xff0c;如有错误&#xff0c;请各位指正。 目录 前言 1 结构体 1.1 结构体的声明 1.2 结构体的自引用 1.3 结构体变…

【C++】list模拟实现(详解)

本篇来详细说一下list的模拟实现&#xff0c;list的大体框架实现会比较简单&#xff0c;难的是list的iterator的实现。我们模拟实现的是带哨兵位头结点的list。 1.准备工作 为了不和C库里面的list冲突&#xff0c;我们在实现的时候用命名空间隔开。 //list.h #pragma once #…

数字化工厂 MES试点方案全解析(三)

目 录 三、试点实施步骤 需求分析与方案设计阶段 系统开发与测试阶段 系统部署与培训阶段 试点运行与优化阶段 总结与评估阶段 三、试点实施步骤 需求分析与方案设计阶段 1、成立由企业生产、工艺、质量、设备、IT 等多部门人员组成的项目团队&#xff0c;与 MES 供应商共…

ShuffleNet V2:高效卷积神经网络架构设计的实用指南

摘要 https://arxiv.org/pdf/1807.11164 当前&#xff0c;神经网络架构设计大多以计算复杂度的间接指标&#xff0c;即浮点运算数&#xff08;FLOPs&#xff09;为指导。然而&#xff0c;直接指标&#xff08;例如速度&#xff09;还取决于其他因素&#xff0c;如内存访问成本…

【Opencv学习】PART1-图像基础处理

目录 一、图像的读入、显示和保存 1、读入图像 imread函数 范例 显示控制参数 2、显示图像 imshow函数 范例 tips waitkey函数 含义 delay参数: tips destoryAllWindows函数 3、保存图像 imwrite函数 范例 实操 01-读入显示保存 代码 结果 二、图像处理入…

硬中断关闭后的堆栈抓取方法

一、背景 性能和稳定性是一个计算机工程里的一个永恒的主题。其中尤其稳定性这块的问题发现和问题分析及问题解决就依赖合适的对系统的观测的手段&#xff0c;帮助我们发现问题&#xff0c;识别问题原因最后才能解决问题。稳定性问题里尤其底层问题里&#xff0c;除了panic问题…

MT8768/MTK8768安卓核心板性能参数_联发科安卓智能模块开发方案

MT8768安卓核心板 是一款采用台积电12nm FinFET制程工艺的智能手机芯片。MT8768核心板不仅提供所有高级功能和出色体验&#xff0c;同时确保智能终端具备长电池寿命。该芯片提供了一个1600x720高清(20:9比例)分辨率显示屏&#xff0c;排除了清晰度和功耗之间的平衡问题。该芯片…

NVR管理平台EasyNVR多个NVR同时管理:全方位安防监控视频融合云平台方案

EasyNVR是基于端-边-云一体化架构的安防监控视频融合云平台&#xff0c;具有简单轻量的部署方式与多样的功能&#xff0c;支持多种协议&#xff08;如GB28181、RTSP、Onvif、RTMP&#xff09;和设备类型&#xff08;IPC、NVR等&#xff09;&#xff0c;提供视频直播、录像、回放…

ETAS工具导入DBC生成Com协议栈

文章目录 前言DBC配置关键属性Cobra参数配置Cobra使用isolar工程配置总结前言 ETAS工具导入DBC主要也是生成arxml用的,ETAS推荐使用Cobra导入,本文介绍导入过程及注意事项 DBC配置关键属性 对于普通Com报文,配置为周期发送,及其周期,NmMessage配置为No,示例如下: 对…

图形化界面MySQL(MySQL)(超级详细)

1.官网地址 MySQL :: Download MySQL Workbench 1.1在Linux直接点击NO thanks..... 下载完后是这个页面 1.2任何远端登录&#xff0c;再把jj数据库给授权 1.3建立新用户 进行连接 点击这个就运行了 只执行show tables&#xff1b;要先选中 圆圈处支持自己输入 点击这个就执…

vulhub靶场与pikachu靶场

一、搭建vulhub 环境&#xff1a;kaildocker 1.1 提权&#xff1a; :::color4 sudo su #权限升级为root ::: 1.2更新软件&#xff1a; :::color4 apt-get update ::: (此处我已更新过) 1.3安装HTTPS协议和CA证书&#xff1a; :::color4 apt-get install -y apt-transpo…

计算机网络socket编程(6)_TCP实网络编程现 Command_server

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络socket编程(6)_TCP实网络编程现 Command_server 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论…

D78【 python 接口自动化学习】- python基础之HTTP

day78 pycharm创建项目并进行接口请求 学习日期&#xff1a;20241124 学习目标&#xff1a;http定义及实战 -- pycharm创建项目并进行接口请求 学习笔记&#xff1a; 安装requests 安装方式&#xff1a;pip/pip3 install requests 官网教程&#xff1a;Requests: HTTP fo…

Android 设备使用 Wireshark 工具进行网络抓包

背景 电脑和手机连接同一网络&#xff0c;想使用wireshark抓包工具抓取Android手机网络日志&#xff0c;有以下两种连接方法&#xff1a; Wi-Fi 网络抓包。USB 网络共享抓包。需要USB 数据线将手机连接到电脑&#xff0c;并在开发者模式中启用 USB 网络共享。 查看设备连接信…