**6.27(反素数)反素数(反转拼写的素数)是指一个非回文素数,将其反转之后也是一个素数。例如:17是一个素数,而31也是一个素数,所以17和71是反素数。编写程序,显示前100个反素数。每行显示10个,并且数字间用空格隔开,如下所示:
13 17 31 37 71 73 79 97 107 113
149 157 167 179 199 311 337 347 359 389
…
**6.27(Emirp)An emirp (prime spelled backward) is a nonpalindromic prime number whose reversal is also a prime. For example, 17 is a prime and 71 is a prime, so 17 and 71 are emirps. Write a program that displays the first 120 emirps. Display 10 numbers per line, separated by exactly one space, as follows:
13 17 31 37 71 73 79 97 107 113
149 157 167 179 199 311 337 347 359 389
…
下面是参考答案代码:
public class EmirpQuestion27 {
public static void main(String[] args) {
int palindPrimeCount = 0;
for (int i = 2; palindPrimeCount != 100; i++) {
if (!isPalindrome(i) && isPrime(i) && isPrime(reverse(i))) {
System.out.print(i + " ");
palindPrimeCount++;
if (palindPrimeCount % 10 == 0)
System.out.print("\n");
}
}
}
public static int reverse(int number) {
int reverseNumber = 0;
do {
reverseNumber = reverseNumber * 10 + number % 10;
number /= 10;
} while (number > 0);
return reverseNumber;
}
public static boolean isPalindrome(int number) {
return reverse(number) == number;
}
public static boolean isPrime(int number) {
for (int i = 2; i <= Math.sqrt(number); i++)
if (number % i == 0)
return false;
return true;
}
}
运行效果:
注:编写程序要养成良好习惯
1.文件名要用英文,具体一点
2.注释要英文
3.变量命名要具体,不要抽象(如:a,b,c等等),形式要驼峰化
4.整体书写风格要统一(不要这里是驼峰,那里是下划线,这里的逻辑段落空三行,那里相同的逻辑段落空5行等等)
5.普通变量,方法名要小驼峰,类名要大驼峰,常量要使用全部大写加上下划线命名法
6.要学习相应的代码编辑器的一些常用快捷键,如:快速对齐等等