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`

**, Therefore after the addition of digits, the last number we got is 1. Hence 1729 is a Magic Number.**

`1+0 = 1`

**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.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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:**

1 2 3 4 5 6 7 | //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.