Java program to check if a number is an amstrong number has been shown here. A positive integer of order n is called an amstrong number if the sum of each digit to the power n is equal to that number.
For example, 153 and 1634 are amstrong numbers as $153 = 1^3 + 5^3 + 3^3$ and $1634 = 1^4 + 6^4 + 3^4 + 4^4$.
The algorithm, pseudocode and time complexity of the program have been shown below.
1. Algorithm to check if a number is an amstrong number
1. Take input of a positive number n.
2. Calculate d, the total no of digit of n
3. Extract each digit $p_i$ and perform sum = $\sum_{i=1}^d p_i ^d $
4. Check If sum == n
5. If step 4 is true, then display n as an amstrong number
6. If step 4 is false, then display n as not an amstrong number
2. Pseudocode to check if a number is an amstrong number
Input : A postive number $n$ as input
Output : $n$ is an amstrong number or not an amstrong number
1. Procedure checkAmstrong($n$):
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13. End Procedure
3. Time complexity to check if a number is an amstrong number
Time Complexity: O(log(n))
Where log(n) is the total no of digits of the input number n.
4. Java Program & output to check if a number is an amstrong number
/********************************** alphabetacoder.com Java program to check if a number is an amstrong number or not ***********************************/ import java.util.Scanner; import java.lang.Math; class Main { public static void main(String args[]) { // declare instance of Scanner class Scanner sc = new Scanner(System.in); // declare variables int n, d = 0, t, r, sum = 0; // take input System.out.print("Enter the number = "); n = sc.nextInt(); // copy value t = n; // calculate the number of digit while (t != 0) { d++; t = t / 10; } // copy value t = n; // find the sum of digits each to the power d while (t != 0) { r = t % 10; sum = sum + (int) Math.pow(r, d); t = t / 10; } //check if input number is amstrong or not if (n == sum) System.out.println(n + " is an amstrong number!"); else System.out.println(n + " is not an amstrong number!"); } }
Output
Enter the number = 153
153 is an amstrong number!