求出大于或等于 N 的最小回文素数。

回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数。

例如,2,3,5,7,11 以及 13 是素数。

回顾一下,如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数。

例如,12321 是回文数。

示例 1:

输入:6
输出:7

示例 2:

输入:8
输出:11

示例 3:

输入:13
输出:101

提示:

1 <= N <= 10^8
答案肯定存在,且小于 2 * 10^8。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/prime-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

————————
解题思路:先判断是不是回文数字,再判断是不是素数。注意,当数字的位数是偶数时(位数>=4),不存在回文素数。因为例如1111,1221等都是11的倍数,所以都不是素数。

所以为了加快运行速度,可以跳过偶数位数的情况。具体的C++代码如下所示:

class Solution {public:int primePalindrome(int N) {if(N==1)return 2;if(N<=3)return N;while(true){if(judge(N)==N){for(int j=2;j<=sqrt(N);++j)  // 判断是不是素数{int k = sqrt(N);if(N%j==0){break;}if(j==k){return N;}}}N++;if(1000<N && N<10000)  // 跳过不必要的部分N=10000;if(100000<N && N<1000000)N = 1000000;if(10000000<N && N<100000000)N = 100000000;}return N;}int judge(int N)  // 判断是不是回文数字{int ans = 0;while(N>0){ans = ans * 10 + N % 10;N /= 10;}return ans;}
};

leetcode —— 866. 回文素数相关推荐

  1. LeetCode——866.回文素数

    分析,这个题目本身不难,用数学方法很容易解出来,问题是当给的数据过大时,容易超时. 数学法:遍历所有数字,检查是不是回文串.如果是,检查是不是素数,如果当前数字长度为 8,可以跳过检查,因为不存在 8 ...

  2. 《算法0基础100讲》(第7讲)素数判定——866.回文素数

    1.素数  <1>定义:  一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数.   <2>证明为素数 ...

  3. Java黑皮书课后题第6章:**6.27(反素数)反素数(反转拼写的素数)是指一个非回文素数,将其反转之后也是一个素数。编写程序,显示前100个反素数,每行显示10个,并且数字间用空格隔开

    6.27(反素数)反素数(反转拼写的素数)是指一个非回文素数,将其反转之后也是一个素数.编写程序,显示前100个反素数,每行显示10个,并且数字间用空格隔开 题目 题目描述 破题 代码 题目 题目描述 ...

  4. Java黑皮书课后题第6章:**6.26(回文素数)回文素数是指一个数同时为素数和回文数。编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开

    6.26(回文素数)回文素数是指一个数同时为素数和回文数.编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开 题目描述与运行示例 代码 题目描述与运行示例 6.26(回文素数) ...

  5. Python对区间内回文素数的判断

    from math import sqrtm,n = input().split() m = int(m) n = int(n) print("{}到{}之间的素数有:".form ...

  6. [模拟|数位] leetcode 9 回文数

    [模拟|数位] leetcode 9 回文数 1.题目 题目链接 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true ...

  7. 判断并输出打印前一百个回文素数,每行10个

    //eg:131 757像这样是回文素数 #include<iostream> #include<iomanip>                              / ...

  8. NUC1214 回文素数

    回文素数 时间限制: 1000ms 内存限制: 65536KB 问题描述 151 是一个回文素数,因为它既是一个素数又是回文数(回文数是指一个数 从左到右 和 从右到左 读的结果一样). 试写一个程序 ...

  9. Bailian3247 回文素数【素数+回文】(POJ NOI0113-11)

    问题链接:POJ NOI0113-11 回文素数. 回文素数 总时间限制: 5000ms 内存限制: 65536kB 描述 一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121, ...

最新文章

  1. LSGO代码小组第18周复盘日志
  2. 并发编程6 锁进程队列
  3. 会场安排问题 http://acm.nyist.net/JudgeOnline/problem.php?pid=14
  4. CSS3 2D 转换
  5. HDU - 5934
  6. 用PHP实现浏览器点击下载各种格式文档的方法详解【txt apk等等】
  7. Ubuntu Core for Raspberry Pi 使用笔记
  8. 用c#写的smtp邮件发送类
  9. RN 0.26 引用方式中哪些属于React,哪些属于React Native
  10. pythonGUI-wxpython
  11. 空硬盘恢复linux,linux使用foremost恢复文件,硬盘恢复
  12. Linux 快捷键大全
  13. 怎样控制小程序tabbar图标大小_微信小程序tabBar的基本设置-微信小程序tabbar字体大小-微信小程序tabbar高度...
  14. c语言太极图编程语言,C语言画图之 画个太极图
  15. 4、混合、股票型基金
  16. 常见硬盘接口技术:从IDE、SCSI到SATA、SAS再到M.2、PCIe
  17. rk3399 Android9.0 ota升级失败
  18. Elasticsearch启动问题:max number of threads [XXX] for user [XX] is too low, increase to at least [4096]
  19. 京东上的神器,评论区的问答蛮搞的
  20. 环信携手华为云助企纾困数字化发展

热门文章

  1. 那些年,我写过的设置Windows系统变量的vbs脚本
  2. windwows和linux下,mysql密码的破解
  3. [转载]带着我的认证上路:五步让你成为网络专家
  4. 一句话讲明白 WebAssembly、微前端等技术背后的核心
  5. leetcode 旋转图像
  6. C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
  7. php to golang,PHP To Go 转型手记 (二)
  8. 存款利息python题_Python——GUI编程 利息计算器 作业9(python programming)
  9. 用python可以画的可爱的图形_利用Python绘制诱人的桑基图
  10. Visual Studio 2017配置CTP的API文件