回文素数

 

求出大于或等于 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
 1 import java.util.Scanner;
 2 
 3 class Solution2 {
 4 
 5     public boolean isPrime(int number) {
 6         for (int i = 2; i <= Math.sqrt(number); i++) {
 7             if (number % i == 0) {
 8                 return false;
 9             }
10         }
11         return true;
12     }
13 
14     public boolean isPalindrome(int[] number, int len) {
15         for (int j = 0; j < len / 2; j++)
16             if (number[j] != number[len - j - 1]) return false;
17         return true;
18     }
19 
20     public int primePalindrome(int number) {
21         if (number <= 2) return 2;
22         number = number % 2 == 0 ? number + 1 : number;
23         for (int i = number; ; ) {
24             int k = i, len = 0;
25             int[] nums = new int[10];
26             while (k / 10 != 0) {
27                 nums[len++] = k % 10;
28                 k /= 10;
29             }
30             nums[len++] = k;
31             if (len % 2 == 0 && i != 11)
32                 i = (int) Math.pow(10, len) + 1;
33             else {
34                 if (isPalindrome(nums, len))
35                     if (isPrime(i)) return i;
36                 i += 2;
37             }
38         }
39 
40     }
41 }
42 
43 public class PrimePalindrome {
44     public static void main(String[] args) {
45         Scanner scan = new Scanner(System.in);
46         int read = scan.nextInt();
47         Solution2 sol = new Solution2();
48         System.out.println(sol.primePalindrome(read));
49     }
50 }

 

转载于:https://www.cnblogs.com/sigmod3/p/9534407.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值