Python 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. Python Program & output to check if a number is an amstrong number
# ************************************* # alphabetacoder.com # Python program to check if a number # is an amstrong number or not # ************************************* import math # take input of the number n = int(input("Enter the number = ")) # initialize d = 0 t = n s = 0 # calculate the number of digit # in that number while t != 0: d += 1 t = t // 10 # copy value t = n # find the sum of digits each to the power d while t != 0: r = t % 10 s = s + math.pow(r, d) t = t // 10 # check if input number is amstrong or not if n == s: print(n, "is an amstrong number!") else: print(n, "is not an amstrong number!")
Output
Enter the number = 1634
1634 is an amstrong number!