Magic Number Program in Java

In this section, we are going to learn about the magic number in Java and also how to find magic numbers in java.

What is Magic Number?

A number is said to be a magic number if the sum of its digits is calculated till a single digit is obtained by recursively adding the sum of its digits. And the single-digit which is obtained at the end must be 1, then the number is a magic number, otherwise, it is not a magic number.

Example: 1729 is a magic number.

Explanation:
1+7+2+9 = 19, the sum of the digit is 19, again
1+9 = 10
1+0 = 1, Therefore after the addition of digits, the last number we got is 1. Hence 1729 is a Magic Number.


Magic Number in Java

Let us see an example in java to check whether the number is a magic number or not. We will use a nested while loop in Java.

import java.util.Scanner;

public class MagicNumberProgram
{
   public static void main(String[] args)
   {
      int num, rem = 1, temp, sum = 0;
      Scanner sc = new Scanner(System.in);
      System.out.print("Enter number: ");
      num = sc.nextInt();
      temp = num;

      //checking the condition with nested while loop
      while (temp > 9)
      {
         while (temp > 0)
         {
            rem = temp % 10;
            sum = sum + rem;
            temp = temp / 10;
         }

         temp = sum;
         sum = 0;
      }

      if (temp == 1)
      {
         System.out.println(num + " is a Magic Number");
      }
      else
      {
         System.out.println(num + " is not Magic Number");
      }
   }
}

Output:

//Run: 1
Enter number: 1729
1729 is a Magic Number

//Run: 2 Enter number: 123
123 is not Magic Number

You can also create a separate Boolean function and return true or false to the main function after checking the number for magic in Java.