# Python Program to Check Armstrong Number

In this tutorial, we will learn how to check whether a positive integer entered by the user is **Armstrong Number** or not using Python programing language. Before moving further it is advisable that you should have knowledge about conditional statements in Python. Check out this tutorial on __Conditional Statements__ in Python.

A positive integer having n digits is **Armstrong** if, the sum of the digits raised to the power n is equal to the number.

For a 3 digit number, we can say that a number is an Armstrong if the sum of the cubes of a number is equal to the number itself.

Suppose the number is 153 then,

1³ + 5³ +3³ = 1 + 125 + 27 = 153

Since the sum of cubes is 153 the number is **Armstrong** number.

The program should take input as follows and return the following as output.

**Input**- Enter Number: 153

**Output**- 153 is an Armstrong number

To execute this task, we should follow the same logic of extracting digits by dividing the number by 10 till it becomes 0. Check the tutorial on finding __sum of digits__ using an iterative approach where the process of finding digits is discussed in detail.

Let us look at the algorithm to understand the working of the code clearly,

## Algorithm

**Step 1**- Define a function **Armstrong()** which will accept a number and its order as parameters

**Step 2**- Initialise **sum** to 0

**Step 3**- Declare a temporary variable **temp** to store a copy of the number

**Step 4**- Run a loop till **temp** is greater than 0

**Step 5**- Declare a variable **digit** to store and calculate the digit of a number by dividing it by 10

**Step 6**- Declare a variable **sum*** *which will store the sum of the digits raised to the power of the order of the digit

**Step 7-** Update **temp*** *to n//10

**Step 8**- Check whether the sum is equal to the number

**Step 9**- If true, print **it is an Armstrong number**

**Step 10**- Else print **not an Armstrong number**

## Python Program

Look at the program to understand the implementation of the above-mentioned approach.

```
def Armstrong(n,o):
sum = 0
temp = n
while temp > 0:
digit = temp % 10
sum += digit ** o
temp = temp//10
if n == sum:
print(n,"is an Armstrong number")
else:
print(n,"is not an Armstrong number")
num = int(input("Enter Number: "))
order = len(str(num))
Armstrong(num,order)
```

Enter Number: 1634

1634 is an Armstrong number

Enter Number: 456234

456234 is not an Armstrong number

## Conclusion

In this tutorial, we learned how to do a program to check if a number is Armstrong or not in Python. First, we defined a function that checks for Armstrong number and displays the output accordingly. The function will have the number and its order as parameters. For finding the order (the number of digits) of the number we used str() and len() functions that are predefined in the string class of Python. The function then checks using if-else conditional statements and prints the result.