## Saturday, 20 August 2016

### Chapter 6 Exercise 27, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

**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 100 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 ProgrammingExercise6_27 {

public static void main(String[] args) {
final int NUMBER_OF_EMIRPS = 100;
int numberPrinted = 0, testedNumber = 2;

while (numberPrinted < NUMBER_OF_EMIRPS) {

if (isPrime(testedNumber) && isPrime(reverse(testedNumber))
&& !isPalindrome(testedNumber)) {
numberPrinted++;
System.out.print(testedNumber + " ");

if (numberPrinted % 10 == 0) {
System.out.println();
}
}
testedNumber++;
}

}

/** Check whether number is prime */
public static boolean isPrime(int number) {
for (int divisor = 2; divisor <= number / 2; divisor++) {
if (number % divisor == 0) { // If true, number is not prime
return false; // number is not a prime
}
}

return true; // number is prime
}

public static boolean isPalindrome(int number) {

return (number == reverse(number));

}

public static int reverse(int number) {
int reverse = 0;
int digit;

do {
digit = number % 10;
reverse = reverse * 10 + digit;
number /= 10;
} while (number != 0);

return reverse;
}
}