# Python Program for Armstrong Numbers

## Python Program to Check Armstrong Number

We have to write a program that will determine if a given number x is Armstrong or not in python. A positive integer x of n digits is called an Armstrong number of order n. Order is the number of digits in x.

Formula to check if a number is Armstrong or not
```pqrs... = pow(p,n) + pow(q,n) + pow(r,n) + pow(s,n) + ....
```
where p, q, r, s,... are single digits in a number
pow() is power function in python
and n is the order i.e count of digits in x.

This formula simply states that sum of powers of each digit raise to order n is equal to the number itself.

### Example:

```Take X = LHS = 153
There are three digits in number so order
n = 3

Calculate RHS of formula

pow(1,3) + pow(5,3) + pow(3,3) = 1 + 125 + 27
= 153 = LHS
Hence 153 is Armstrong number.
```

### Python Code to check Armstrong Number

``````# Function to calculate order (count of digits) of the number

def order(x):
# variable to store count of digits
# in a number
n = 0
while (x!=0):
n = n+1
x = x/10
return n

# Function to check whether the given number
# is Armstrong number or not

def isArmstrong (x):
n = order(x)
temp = x
sum1 = 0

while (temp!=0):
r = temp%10
sum1 = sum1 + pow(r, n)
temp = temp/10

# If condition satisfies
return (sum1 == x)

# Driver Program

# set number to check as armstrong or accept
# x = input("Enter a number:- ")

x = 153

print(isArmstrong(x))

x = 2826

print(isArmstrong(x))

x = 54748

print(isArmstrong(x))``````
Output
```True
False
True
```

## Python Program to Find Armstrong Numbers in an Interval

Que. Write a python program to find armstrong numbers between the given range.
``````# Function to calculate order (count of digits) of the number

def order(x):
# variable to store count of digits
# in a number
n = 0
while (x!=0):
n = n+1
x = x/10
return n

# Function to check whether the given number
# is Armstrong number or not

def isArmstrong (x):
n = order(x)
temp = x
sum1 = 0

while (temp!=0):
r = temp%10
sum1 = sum1 + pow(r, n)
temp = temp/10

# If condition satisfies
return (sum1 == x)

# Driver Program

# python code to find armstrong numbers
# within a range i.e between two numbers

x = 1
y = 1000

print("Armstrong numbers between 1 to 1000 are:")

for i in range(x,y+1):
if(isArmstrong(i)):
print(i)``````
Output:
```Armstrong numbers between 1 to 1000 are:
1
2
3
4
5
6
7
8
9
153
370
371
407
```