Java Program to Check if the given number is Emirp Number or not

In this tutorial of Emirp Number in Java, we will write a program to check for the Emirp number in Java. Let us start by understanding, what is Emirp number.

Emirp Number

A number is said to be an Emirp number if it is a prime number and when reversed, the result formed is also a Prime Number. Emirp is backward for Prime, which indicates that a number, when formed backward, is also a prime number. Hence also known as twisted prime numbers.

Example: 13, 79, 199, 107 etc.

Explanation: Consider a Prime Number, 13
The reverse of 13: 31, which is also a prime number. Therefore, 13 is an Emirp Number.


Java Program to check for Emirp Number Using Function.

import java.io.*;
import java.util.*;

public class EmirpNumber
{
   //function to check for prime, returns boolean
   public static boolean isPrime(int n)
   {
      if (n <= 1)
         return false;

      for (int i = 2; i < n; i++)
      {
         if (n % i == 0)
            return false;
      }

      return true;
   }

   //function to check for emirp number, returns boolean
   public static boolean isEmirp(int n)
   {
      //calls isPrime function and checks for prime
      if (isPrime(n) == false)
         return false;

      int rev = 0;
      while (n != 0)
      {
         int digit = n % 10;
         rev = rev *10 + digit;

         n = n / 10;
      }

      //after reverse again checks for prime  
      return isPrime(rev);
   }

   //main function
   public static void main(String args[])
   {
      Scanner sc = new Scanner(System.in);

      System.out.print("Enter a number: ");
      int n = sc.nextInt();

      //Display accordingly
      if (isEmirp(n) == true)
         System.out.println(n + " is an Emirp number.");
      else
         System.out.println(n + " is not an Emirp number.");
   }
}

Output:

//First Run
Enter a number: 13
13 is an Emirp number.

//Second Run
Enter a number: 107
107 is an Emirp number.

//Third Run
Enter a number: 23
23 is not an Emirp number.