In this tutorial we will learn **what is magic number** and how to find **magic number in java** . We will write magic number program in java to check given number is magic or not .

## What is the magic number ?

Magic number is the if the sum of its digits recursively are calculated till a single digit If the single digit is 1 then the number is a **magic number**. Magic number is very similar with Happy Number. for example 226 is a number then

step 1 : sum of each number is 2+2+6=10

step 2: sum of 10 is 1+0 = 1 Because single digit is 1 so given number 226 is magic number .

## Algorithm for Magic Number

Step 1 : Take the input from user num to check magic number and initialize sum with 0 .

Step 2 : Now store sum of digits in sum till number > 0 or sum > 9

Step 3 : When number become 0 then replace number with sum of digits and set sum =0

Step 4: Now again calculate sum of digits of number and store in sum variable .

Step 5 : If sum is equal to 1 then given number is **magic number** .

Step 6 : If sum is not equal to 1 then given number is not magic number .

## Magic number program in java

Now We will write magic number program in java . We will take input from user and then implement above algorithm to find **magic no in java** .Let’s see java program

```
import java.util.Scanner;
public class MagicNumber{
public static void main(String[] args) {
int num , sum=0;
Scanner sc = new Scanner(System.in);
System.out.print("enter a number: " );
num =sc.nextInt();
while (num > 0 || sum > 9)
{
if (num == 0)
{
num = sum;
sum = 0;
}
sum += num % 10;
num /= 10;
}
// If sum = 1, then it is magic number
if(sum == 1) {
System.out.println("It is a magic number");
}else {
System.out.println("It is not a magic number");
}
}
}
```

Output:

```
enter a number: 226
It is a magic number
```

## Efficient Approach to find Magic Number in Java

There is another approach to find Magic Number In Java . In this approach, we can get Magic Number after dividing a number by 9. This is a shortcut method to verify Magic Number. If we get remainder 1 after dividing a number by 9 then the number is a magic number. It is based on the concept of divisibility rule of 9 which says that if a number is divisible by 9, then sum of its all digits are also divisible by 9. An addition of 1 in the original number will increase the ultimate value by 1, making it 10 and the ultimate sum will be 1, which makes a number a magic number.

```
import java.util.Scanner;
public class MagicNumber2 {
public static void main(String[] args)
{
int num;
Scanner sc = new Scanner(System.in);
System.out.print("enter a number: " );
num =sc.nextInt();
// Condition to check Magic number
if (num % 9 == 1)
System.out.printf("Magic Number");
else
System.out.printf("Not a Magic Number");
}
}
```

Output :

```
enter a number: 226
Magic Number
```

In this tutorial we have learned what is the magic number and write magic number program in java . We Find magic no in java using two method here .