问题描述:
素数的平方是回文数,比如11*11=121.求不超过1000的平方回文素数。
public class Main {
public static void main(String[]Args){
for(int i=2 ; i<1000 ; i++){//设置范围
if(isPrimeNum(i)&&ishuiwenNum(i)){ //输出条件:本身是素数 且本身的平方是回文数
System.out.printf("%d*%d=%d \n",i,i,i*i);
}
}
}
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 boolean ishuiwenNum(int b){//判断素数的平方是不是回文数
int a=b*b;
int length1 = (a+"").length();
String s1 = (a+"");
for(int i=0 ; i
if(s1.codePointAt(i)!=s1.codePointAt(length1-i-1)){
return false;
}
}
return true;
}
}