问题描述:
所谓回文素数是指,对一个素数n从左往右和从右往左读结果值相同且是素数,即称为回文素数。
求不超过1000的回文素数。
public class Main {
public static void main(String[]Args){
int count=0; //计数
for(int i=1 ; i<1000 ; i++){ //设置范围
if(isPrimeNum(i)&&fanxuNum(i)==i){ //输出条件:本身和反序数和本身相同
System.out.printf("%3d ",i);
count++;
if(count%7==0){ //满七个数 换行
System.out.println();
}
}
}
}
public static boolean isPrimeNum(int a){ //判断是否是素数
for(int i=2 ; i<=Math.sqrt(a) ; i++){
if(a%i==0){
return false;
}
}
return true;
}
public static int fanxuNum(int a){ //求反序数
int length1 = (a+"").length();
if(length1==1){
return a;
}
if(length1==2){
int x = a/10;
int y = a%10;
return y*10+x;
}
else{
int x = a/100;
int y = a/10%10;
int z = a%10;
return x+y*10+z*100;
}
}
}