**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 …
参考代码:
package chapter06;publicclassCode_27{publicstaticvoidmain(String[] args){int count =0;for(int i =2;count <=100;i++){if(isPrime(i)&&isPrime(reverse(i))&&!isPalindrome(i)){
System.out.print(i +" ");
count++;if(count %10==0)
System.out.print("\n");}}}publicstaticbooleanisPalindrome(int number){returnreverse(number)== number;}publicstaticintreverse(int number){int reverseNumber =0;do{
reverseNumber = reverseNumber *10+ number %10;
number /=10;}while(number >0);return reverseNumber;}publicstaticbooleanisPrime(int number){for(int i =2;i <= Math.sqrt(number);i++)if(number % i ==0)returnfalse;returntrue;}}
结果显示:
131731377173799710711314915716717919931133734735938970170973373974375176176990793794195396797198399110091021103110331061106910911097110311091151115311811193120112131217122312291231123712491259127912831301132113811399140914291439145314711487149915111523155915831597160116191657166917231733174117531789181118311847186718791901191319331949197930113019302330493067
Process finished with exit code 0