In this post, we learn how to write a python program to check for Armstrong numbers with a detailed explanation but before writing the program let’s understand what is Armstrong number.

**Table of Contents**hide

## What is Armstrong number?

Armstrong number is a number in which the sum of each digit powered to the total number of digits is same as the given number.

**For example:** **153**

**Another example**: **1634**

## Armstrong number program in python

We are writing this program in three different ways

- Simple by taking user input
- By using function
- using try-except block (Except the exception, if the user inputs wrong data)

### Simple by taking user input

**Questions may be asked like: **Write a python program to check for Armstrong number by taking user input.

But before writing this program you should know about:

#### Source code

```
my_num = int(input('ENter a number: '))
power_of_my_num = len(str(my_num))
total = 0
i = my_num
while i > 0:
remainder = i%10
total += remainder**power_of_my_num
i = i // 10
if total == my_num:
print(f'{my_num} is Armstrong number')
else:
print(f'{my_num} is not Armstrong number')
```

#### Output-1

```
ENter a number: 153
153 is Armstrong number
```

#### Output-2

```
ENter a number: 1635
1635 is not Armstrong number
```

### By using function

** Questions may be asked like:** Write a python program to check for Armstrong number by using a user-defined function.

But before we jump into the program few things you should know about:

#### Source code

```
def Armstrong_checker(num):
power_of_num = len(str(num))
sum = 0
i = num
while i>0:
remainder = i%10
sum += remainder**power_of_num
i = i//10
if sum == num:
return True
else:
return False
my_number = int(input('ENter a number: '))
if Armstrong_checker(my_number):
print(f'{my_number} is Armstrong number')
else:
print(f'{my_number} is not Armstrong number')
```

#### Output-1:

```
ENter a number: 1634
1634 is Armstrong number
```

#### Output-2:

```
ENter a number: 145
145 is not Armstrong number
```

### Using try-except block (Except the exception, if the user inputs wrong data)

**Questions may be asked like: **Write a python program to check for Armstrong number and except the exception, if the user inputs wrong data.

But before we jump into the program few things you should know about:

#### Source code

```
def Armstrong_checker(num):
power_of_num = len(str(num))
sum = 0
i = num
while i>0:
remainder = i%10
sum += remainder**power_of_num
i = i//10
if sum == num:
return True
else:
return False
while True:
try:
my_number = int(input('ENter a number: '))
break
except Exception:
print('only numbers are allowed pls enter again')
if Armstrong_checker(my_number):
print(f'{my_number} is Armstrong number')
else:
print(f'{my_number} is not Armstrong number')
```

#### Output-1:

```
ENter a number: one
only numbers are allowed pls enter again
ENter a number: 1
1 is Armstrong number
```

#### Output-2:

```
ENter a number: 1634
1634 is Armstrong number
```