Magic Number in Java

Write a java program to check whether a given number is a magic number or not.

A number is said to be a Magic number if the sum of its digits are calculated till a single digit is obtained by recursively adding the sum of its digits.

If the single digit comes to be 1 then the number is a magic number.

Example- 199 is a magic number as 1+9+9=19 but 19 is not a single digit number so 1+9=10 and then 1+0=1 which is a single digit number and also 1. Hence it is a magic number.

import java.util.Scanner;
class MagicNumber
{
    public static void main(String args[])
    {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter the number");
        int num = in.nextInt();
        int n=num;
        
        int sum = 0; 
        while(n>0 || sum>9)
        { 
            if (n==0)
            {
                n = sum; 
                sum = 0;
            } 
            sum += n%10; 
            n /= 10;
        }
        
        if(sum==1)
            System.out.println(num + " is a Magic Number");
        else
            System.out.println(num + " is not a Magic Number");
    }
}

Video Explanation

Alternate Method

import java.util.*;
class MagicNumberCheck
{
    public static void main(String args[])
    {
        Scanner ob=new Scanner(System.in);
        System.out.println("Enter the number to be checked.");
        int n=ob.nextInt();
        int sum=0, num=n;
      
        while(num>9)
        {
            sum=num;int s=0;
            while(sum!=0)
            {
                s=s+(sum%10);
                sum=sum/10;
            }
            num=s;
        }
      
        if(num==1)
        	System.out.println(n+" is a Magic Number.");
        else
        	System.out.println(n+" is not a Magic Number.");
    }
}

Leave a Comment

Your email address will not be published. Required fields are marked *