10301是个5位的素数。它有个特点,把数字倒过来还是它本身,具有这样特征的素数,我们称之为:回文素数。
10501
10601
11311
这些都是5位的回文素数。
请你计算一下,像这样的5位数的回文素数,一共有多少个?
请填写这个表示个数的整数,注意不要写任何其它多余的内容,比如说明或解释文字,也不要列出所有的回文素数。
回文素数:既是回文数又是素数。
所以在找的时候需要两个判断条件:
1、回文数
2、素数
代码如下:
public static void main(String[] args) {
Main test = new Main;
int count = 0;//count记录回文素数的个数。
for(int i = 10000;i < 100000;i++) {
if(test.judgePrime(i) && test.judgeReverse(i)) {
count++;
}
}
System.out.println(count);
}
//判断是否为素数
public boolean judgePrime(int n) {
boolean judge = true;
for(int i = 2;i <= n / 2;i++)
if(n % i == 0) {
judge = false;
break;
}
return judge;
}
//判断是否为回文数
public boolean judgeReverse(int n) {
StringBuffer s = new StringBuffer(""+n);
String s1 = "", s2 = "";
s1 = s.toString();
s2 = s.reverse().toString();
if(s1.equals(s2))
return true;
else
return false;
}
}