class Solution {
public static boolean judge(int n){
if(n<=1){
return false;
}
char[] arr=Integer.toString(n).toCharArray();
int len=arr.length;
if(n>11&&len%2==0){
return false;
}
// 判断是否回文
for(int i=0;i<len/2;i++){
if(arr[i]!=arr[len-1-i]){
return false;
}
}
//判断是否素数---a=x*y的话,x或y必有一个大于等于平方根,另一个小于等于平方根;
for(int i=2;i<=Math.sqrt(n);i++){
if(n%i==0){
return false;
}
}
return true;
}
public int primePalindrome(int N) {
for(int n=N;true;n++){
int len= (n+"").length();
// 偶数长度的对称数一定会被11整除,直接长度加1,从下个10...01开始
if(n>11&&len%2==0){
n=(int)Math.pow(10,len);
continue;
}
if(judge(n)){
return n;
}
}
}
}
网友评论