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, again1+9 = 101+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.