题目
问题描述
10301年主要的数字。它有一个特征,把数字倒过来,或者它本身,有这个特征的素数,我们叫它回文素数。这些都是五位数的回文。请计算一下像这样的五个数字的回文有多少个?请填写代表数字的整数,注意不要填写任何额外信息,如描述或解释性文字,或列出所有回文素数。
解题思路
1、暴力破解。遍历所有五位数。
2、定义一个计数器sum,分两步判断数字,是回文数进入下一步判断是否为素数,都是则计数器加一
3、输出计数器sum。
//java代码
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;//计数器保存回文素数的个数
for (int i = 10001; i < 100000; i = i + 2) {//偶数肯定不是素数所以每次循环
String str = String.valueOf(i);//将数字转换成字符串
char[] c = str.toCharArray();//将字符串转化为字符数组
boolean flag = true;
for (int j = 0; j < c.length / 2; j++) {
if (c[j] != c[c.length - 1 - j]) {//判断首尾字符是否相等
flag = false;//有一个不相同。flag为错并跳出循环
break;
}
}
//如果是回文数则判断是不是素数
if (flag) {
for (int k = i - 1; k > 1; k--) {
if (i % k == 0) {
flag = false;//不是素数。flag为错并跳出循环
break;
}
}
//如果flag为true就代表i即是回文数又是素数。
if(flag){
sum++;
}
}
}
System.out.println(sum);
}