leetcode —— 866. 回文素数
求出大于或等于 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 (