## Friday, November 8, 2019

### Python Program to Check Armstrong Number

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!