主要是记一下回文和素数的定义:
public static void main(String[] args) {
int N = 9989900;
while(true){
//找到符合条件的则跳出循环并打印
if(N == reverse(N) && isPrime(N)){
System.out.println(N);
break;
}
// 不存在 8 长度的素数-.-
if (10_000_000 < N && N < 100_000_000){
N = 100_000_000;
} else{
N += 1;
}
}
}
/**
* 获取num的回文值
* @param num
* @return
*/
private static int reverse(int num){
int result = 0;
while(num > 0){
result = result * 10 + num % 10;
num = num / 10;
}
return result;
}
/**
* 判断是否素数
* @param num
* @return
*/
private static boolean isPrime(int num){
if(num<2){
return false;
}
int sqrtVal = (int) Math.sqrt(num);
for(int i =2; i <= sqrtVal; i++){
if(num%i == 0){
return false;
}
}
return true;
}