Mystery Number in Java

In this tutorial, we will write a Java program to check if a number is a Mystery Number. Before that, we may go through the following topic in java.

A mystery number is a number that can be expressed as the sum of two numbers and those two numbers should be the reverse of each other. It lies between 22 to 198, i.e. 22<=N<=198.

Example:

132 = 93 + 39
154 = 68 + 86
176 = 79 + 97


Program to check Mystery Number in Java

import java.util.Scanner;

public class Main
{
  static int reverseFunction(int n)
  {
    String str = Integer.toString(n);
    String string = "";
    
    for (int i = str.length() - 1; i >= 0; i--)
      string = string + str.charAt(i);

    int revResult = Integer.parseInt(str);
    return revResult;
  }

  static boolean isMystery(int num)
  {
    for (int i = 1; i <= num / 2; i++)
    {
      int j = reverseFunction(i);
      if (i + j == num)
      {
        System.out.println(i + " " + j);
        System.out.println(num + " is a mystery number.");
        return true;
      }
    }

    System.out.println(num + " is NOT a mystery number.");
    return false;
  }

  public static void main(String args[])
  {
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter a number: ");

    int num = sc.nextInt();
    isMystery(num);
  }
}

Output:

Enter a number: 132
66 66
132 is a mystery number.