**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
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; } }
No comments:
Post a Comment