素数回文(来自计蒜客T1986题目)
题目:
蒜头君对既是素数又是回文的数特别感兴趣。比如说 151 既是素数又是个回文数。回文数是指从左到右读和从右到左读都一样的数。
现在小王想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟 b 之间(包含 a 和 b)满足条件的数。
输入格式
输入 a 和 b (2 ≤ a < b ≤ 100,000,000)。
输出格式
按从小到大输出 a, b 之间所有满足条件的素数回文数,一个数占一行。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
2 200
样例输出
2 3 5 7 11 101 131 151 181 191
提醒:本文只对素数做出解释,回文代码大家可以自己模拟代码结果。
#include <iostream>
using namespace std;int a, b;int main() {cin >> a >> b;for (int i = a; i <= b; i ++) {int x, y;y = 0, x = i;while (x > y) {y = y * 10 + x % 10;x /= 10;}if (x == y || x == y / 10) { // while 到此处是回文数的判断 int find = 0;for (int j = 2; j * j <= i; j ++) {if (i % j == 0) {find = 1; // for 中素数判断是对暴力求解的一种改进(文末有解释)}}if (find == 0){cout << i << endl;}}}return 0;
}
对素数的判断中 for(int j = 2; j * j <= i; j ++) 进行一个通俗的解释:
就是一个非负数 n ,它如果不被 1 和自身分解,想要被其它的整数分解,那么分解的结果就是这两个数一定是在 sqrt(n)的两侧,一个数在 sqrt(n)的左侧,一个数在 sqrt(n)的右侧。
例如:n = 100 sqrt(n)= 10;
那么:2 * 50 = 100
5 * 20 = 100
在一个算式中,2 和 5 都在 10 的左侧, 50 和 20 都在 10 的右侧。
以前我的做法是遍历到 n/2,其实这样也是有一定误差的(大家可以想一想有什么误差),我们不需要遍历到 n , 也不需要遍历到 n - 1 ,我们只需要遍历到 sqrt(n)即可。
推荐大家写成 for ( int i = 2; i * i <= n; i ++) ,
若要写成 for ( int i = 2; i <= sqrt(n); i ++) , 还需要添加头文件#include <cmath> 。
提醒:本文的代码在 Dev C++ 中能正确运行;在计蒜客中提交有超时的概率。回文和素数都有优化的空间,大家可以进一步优化。
素数回文(来自计蒜客T1986题目)相关推荐
- 计蒜客/51Nod题目
题目 换位置(1) 链接https://nanti.jisuanke.com/t/T1971 思路:两两交换次序使得数组逆序,第一个到最后位置需要n-1步,第二个到倒数第二个需要n-2步,第三个到倒数 ...
- DD 摆磁铁(计蒜客信息学8月普及组模拟赛)
DD 摆磁铁 这道题来自 计蒜客信息学8月普及组模拟赛 普及组!! 把我一个TG选手看懵了 看来我要回去打普及了 题目大意 给出一个n个节点的树,要把树上给定的2*m个节点两两配对,两个节点配对的产生 ...
- 计蒜客题解——最大的余数
其实本题的难度真心不高,但是可以完整说明数据分析.标程.随机数生成.对拍等部分. 题目链接 原题来自计蒜客的某次比赛.计蒜客对应的链接为https://nanti.jisuanke.com/t/422 ...
- 无脑博士的试管们java_计蒜客 无脑博士和他的试管们
标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...
- HDU - 1431 素数回文 [ 学到了 ]
Problem Description xiaoou33对既是素数又是回文的数特别感兴趣.比如说151既是素数又是个回文.现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 ...
- HDU1431 素数回文(打表)[C,C++,Java]
目录 题目及翻译 题面 输入 输出 输入样例 输出样例 题目思路 注意事项 解决过程 AC代码 C/C++(几乎没有代码变更)[即时计算] C/C++(几乎没有代码变更)[暴力打表] Java[即时计 ...
- 计蒜客 T1853:非常男女(前缀和)
上一篇博客计蒜客 T1101:大整数的因子(高精度除法详解) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.这篇博客来记录一下计蒜客T18 ...
- 计算二进制补码 计蒜客 Python
题目 题目来源于计蒜客输出二进制补码 题目描述 蒜头君有一个 int 的整数,输出它的 32 位二进制补码. 输入格式 一个整型整数. 输出格式 输出一行,即该整数的补码表示. 样例输入 7 样例输出 ...
- 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析
新手,欢迎交流,更新完毕. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:有趣的数字 B. 结果填空:爬楼梯 C. 结果填空:七巧板 D. 结果填空:苹果 ...
最新文章
- android studio so文件的添加
- Algorithms_基础数据结构(01)_线性表之数组数组的应用案例分析
- svn教程----示例二:测试人员拥有读权限
- 剖析 .NET 托管提供程序
- 数据库存储模型-数据存储
- 前端开发中使用mock模拟数据
- 死锁编码及定位分析(故障排查)
- 第四届 AI City 挑战赛 @ CVPR 2020 开始啦!
- SpringBoot的Bean之@ConditionalOnBean与@ConditionalOnClass
- 奇异值与主成分分析(PCA)
- IBM X3650 M4 服务器
- python画图如何调整图例位置_Python——legend()图例位置调整
- centos下的mysql安装
- 矩阵分解在推荐系统中的应用:NMF和经典SVD实战
- TypeError: 'list' object is not callable
- Linux操作系统加固
- 音视频基础1:H264、H265、MPEG-4、VP8、VP9编码基础知识
- 图灵社区python kindle_推送mobi至Kindle流程说明(简要操作)
- ubuntu10.10安装google拼音输入法
- Ubuntu下载常用软件和使用Caffe时的常见问题
热门文章
- NAND的局限性和使用寿命
- IPETRONIK电动汽车热管理方案
- node实现视频一边播放一边下载
- 从光的波粒二相性所想到的.......(非物理范畴)
- 【论文笔记】半监督的多视图学习:Semi-supervised Multi-view Deep Discriminant Representation Learning
- M5310A--学习笔记
- 《那些年啊,那些事——一个程序员的奋斗史》——23
- valueerror:could not convert string to float:****
- 市场调研报告-全球与中国商用压缩机市场现状及未来发展趋势
- tidevice 助你在非Mac环境执行iOS自动化