有点类似于课本上的一个例子,这里可以先判断素数,在是素数的前提下在判断是否为回文数,若二者均满足,则为 回文素数。其中判断某一素数是否为回文数时,将int转为String会很方便看是否为回文数,(因为可以用charAt)但是不能用(String)i, 而要用String.valueOf(i);
来将 i 转为字符串
package
Experiment1;
public class Palindrome_Prime {
public static void main(String[]
args) {
int count = 0;
System.out.println("前100个回文素数如下:");
for(int i = 2; count < 100;
i++) {
//判断
i 是否为素数
boolean isPrime = true;
for (int j = 2; j < i / 2;
j++) {
//一旦不是素数便跳出循环
if (i % j == 0) {
isPrime = false;
break;
}
}
//是素数后再判断是否为回文数
boolean isPalindrome = true;
if (isPrime) {
//这里不能用String s = (String) i; 而是用String.valueOf(i);这个方法是新新的哦
String s =
String.valueOf(i);//将 i 转为字符串
for (int k = 0; k <
s.length() / 2; k++){
if (s.charAt(k) !=
s.charAt(s.length() - 1 - k)) {
isPalindrome =
false;
break;
}
}
// i 为回文素数
if (isPalindrome) {
count++;
System.out.printf("%5d
", i);
if(count % 10 == 0)
System.out.println();
}
}
}
}
}