In this post we'll see a Python program to check if a given number is an Armstrong number or not.
An Armstrong number is a number that is equal to the sum of the digits in a number raised to the power of number of digits in the number.
For example 371 is an Armstrong number. Since the number of digits here is 3, so-
371 = 33 + 73 + 13 = 27 + 343 + 1 = 371
Another Example is 9474, here the number of digits is 4, so
9474 = 94 + 44 + 74 + 44 = 6561 + 256 + 2401 + 256 = 9474
Check Armstrong number or not Python program
In the program user is prompted to input a number. Number of digits in that number is calculated using len()
function that takes string as input that is why
number is cast to str.
In the loop add each digit of the input number raised to the power of number of digits. After the control comes out of loop if sum and the input number are equal then it is an Armstrong number otherwise not.
def check_armstrong(num): digitsum = 0 temp = num # getting length of number no_of_digits = len(str(num)) while temp != 0: digit = temp % 10 # sum digit raise to the power of no of digits digitsum += (digit ** no_of_digits) temp = temp // 10 print('Sum of digits is', digitsum) # if sum and original number equal then Armstrong number return True if (digitsum == num) else False num = int(input('Enter a number: ')) flag = check_armstrong(num) if flag: print(num, 'is an Armstrong number') else: print(num, 'is not an Armstrong number')
Output
Enter a number: 371 Sum of digits is 371 371 is an Armstrong number Enter a number: 12345 Sum of digits is 4425 12345 is not an Armstrong number Enter a number: 54748 Sum of digits is 54748 54748 is an Armstrong number
That's all for this topic Python Program to Check Armstrong Number. If you have any doubt or any suggestions to make please drop a comment. Thanks!
>>>Return to Python Programs Page
Related Topics
You may also like-