java查找回文素数
素数:除了1和本身不能被整除的数。如1,3,11
回文数:从左边读和从右边读一样的数。如:11,22,151,313,
解题思想:先判断是否是素数,再判断是否是回文数。难点应该在于第二个判断。回文数既然从左边读和从右边读一样,那么就可以把当前数翻转,之后再与原数比较是否相同即可。上代码
/**
* @author wk
* @date 2019/9/25 9:34
*/
public class TestNum02 {
public static void main(String[] args) {
for (int i = 11; i < 100_000_000_0; i++) {
if (i == pre(i) && test(i) ){
System.out.println(i);
}
}
}
/**
* 判断是否是素数
* @param n
* @return
*/
public static boolean test(int n){
if (n<2){
return false;
}
int z = (int)Math.sqrt(n);
for (int i = 2; i <= z; i++) {
if (n%i == 0){
return false;
}
}
return true;
}
/**
* 判断是否是回文数
* @param n
* @return
*/
public static Integer pre(int n){
int temp=0;
while (n>0){
temp = temp*10+(n%10);
n=n/10;
}
return temp;
}
}