(回文素数)回文素数是指一个数同时为素数和回文数。例如:131是一个素数,同时也是一个回文素数。数学313和757也是如此。编写程序,显示前100个回文素数。每行显示10个数,数字中间用一个空格隔开。如下所示:
2 3 5 7 11 101 131 151 181 191
313 353 373 383 727 757 787 797 919 929
…
格式问题卡了好久。。。
变量count用来计数,num用来代表自然数。判断即是素数又是回文数时,就要准备输出,count++,当输出一行超过10个时,就要换行。用count%10来判断是否换行输出,判断一次num就要++一次,所以无论第一个if里面是否都为true,num都要++,因此num++放在if之外,while循环之内。
public class P626 {
public static void main(String[] args) {
int count = 1;
int num = 2;
while (count <= 100) {
if (isPalindrome(num) && isPrime(num)) {
count++;
if (count % 10 == 0) {
System.out.println(num);
} else {
System.out.print(num + " ");
}
}
num++;
}
}
public static boolean isPrime ( int number){
boolean isPrime = true;
for (int i = 2; i <= number / 2; i++) {
if (number % i == 0) {
isPrime = false;
break;
}
}
return isPrime;
}
public static boolean isPalindrome ( int number){
boolean isPalindrome = true;
if (number != reverse(number)) {
isPalindrome = false;
}
return isPalindrome;
}
public static int reverse(int number) {
int reverseNumber = 0;
do {
reverseNumber = reverseNumber * 10 + number % 10;
number /= 10;
} while (number > 0);
return reverseNumber;
}
}