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 = 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.
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:
//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.