- Python Basic Programs
- Python Program Examples
- Python Print Hello World
- Python Get Input from User
- Python Add Two Numbers
- Add Subtract Multiply Divide
- Python Check Even or Odd
- Python Check Prime or Not
- Python Check Alphabet or Not
- Python Check Vowel or Not
- Python Check Leap Year or Not
- Check Reverse equal Original
- Check Positive Negative Zero
- Python Check Armstrong or Not
- Python Check Palindrome or Not
- Python Check Perfect Number
- Python Find Reverse of Number
- Python Count Digits in Number
- Python Add Digits of Number
- Sum of First and Last Digits
- Python Product of Mid Digits
- Sum of Squares of Digits
- Interchange Digits of Number
- Python Sum of n Numbers
- Python Print ASCII Values
- Python Swap Two Numbers
- Python Swap Two Variables
- Python Fahrenheit to Celsius
- Python Celsius to Fahrenheit
- Python Display Calendar
- Python Days into Years, Weeks
- Find Largest of Two Number
- Find Largest of Three Number
- Python Print Fibonacci Series
- Generate Armstrong Numbers
- Python Make Simple Calculator
- Python Add Binary Numbers
- Binary Number Multiplication
- Python Mathematical Programs
- Find Sum of Natural Numbers
- Find Average of n Numbers
- Python Print Multiplication Table
- Print Table using Recursion
- Python Find Average Percentage
- Python Find Grade of Student
- Find Square Root of Number
- Python Print Prime Numbers
- Find Numbers Divisible by
- Python Find Factors of Number
- Python Find Factorial of a Number
- Python Find HCF & LCM
- Python Kilometres to Miles
- Python Find Area of Square
- Python Find Area of Rectangle
- Python Find Area of Triangle
- Python Find Area of Circle
- Python Find Perimeter of Square
- Find Perimeter of Rectangle
- Python Find Perimeter of Triangle
- Find Circumference of Circle
- Python Simple Interest
- Python Solve Quadratic Equation
- Python Different Set of Operations
- Python Display Powers of 2
- Python Find nCr & nPr
- Python Pattern Programs
- Python Print Pattern Programs
- Python Print Diamond Pattern
- Python Print Floyd's Triangle
- Python Print Pascal's Triangle
- Python List Programs
- Python Count Even/Odd in List
- Python Positive/Negative in List
- Python Even Numbers in List
- Python Odd Numbers in List
- Python Sum of Elements in List
- Sum of Odd/Even Numbers
- Python Element at Even Position
- Python Element at Odd Position
- Python Search Element in List
- Python Largest Number in List
- Python Smallest Number in List
- Python Second Largest in List
- Python Second Smallest in List
- Python Insert Element in List
- Python Delete Element from List
- Python Multiply Numbers in List
- Swap Two Elements in List
- Python 1D Array Program
- Python Linear Search
- Python Binary Search
- Python Insertion Sort
- Python Bubble Sort
- Python Selection Sort
- Remove Duplicates from List
- Python Reverse a List
- Python Merge Two List
- Python Copy a List
- Python Conversion Programs
- Python Decimal to Binary
- Python Decimal to Octal
- Python Decimal to Hexadecimal
- Python Binary to Decimal
- Python Binary to Octal
- Python Binary to Hexadecimal
- Python Octal to Decimal
- Python Octal to Binary
- Python Octal to Hexadecimal
- Python Hexadecimal to Decimal
- Python Hexadecimal to Binary
- Python Hexadecimal to Octal
- Python Matrix Programs
- Python Add Two Matrices
- Python Subtract Two Matrices
- Python Transpose Matrix
- Python Multiply Matrices
- Python String Programs
- Python Print String
- Python Find Length of String
- Python Compare Two Strings
- Python Copy String
- Python Concatenate String
- Python Reverse a String
- Python Swap Two Strings
- Python Uppercase to Lowercase
- Python Lowercase to Uppercase
- Python Check Substring in String
- Python Count Character in String
- Count Repeated Characters
- Python Count Word in Sentence
- Python Count Each Vowels
- Python Capitalize Character
- Python Capitalize Word in String
- Python Smallest/Largest Word
- Remove Spaces from String
- Remove Duplicate Character
- Remove Vowels from String
- Remove Punctuation from String
- Python Remove Word in String
- Python Remove Duplicate Words
- WhiteSpace to Hyphens
- Replace Vowels with Character
- Replace Character in String
- Python Sort String in Alphabetical
- Sort Word in Alphabetical Order
- Extract Number from String
- Python Check Anagram Strings
- Python File Programs
- Python Read a File
- Python Write to File
- Python Append Text to File
- Python Copy Files
- Python Merge Two Files
- Python Counts Characters in File
- Python Count Words in File
- Python File Content in Reverse
- Python Lines Contains String
- Python Delete Line from File
- Python Capitalize Word in File
- Python Replace Text in File
- Replace Specific Line in File
- Python Find Size of File
- Python List Files in Directory
- Python Delete Files
- Python Misc Programs
- Python Reverse a Tuple
- Python Merge Two Dictionary
- Python bytes to String
- Python bytearray to String
- Generate Random Numbers
- Python Print Address of Variable
- Python Print Date and Time
- Python Get IP Address
- Python Shutdown/Restart PC
- Python Tutorial
- Python Tutorial

# Python Program to Check Armstrong Number

In this article, we've created some programs in Python, to check whether a number entered by user is an Armstrong number or not. Here are the list of programs:

- Simple Program to Check Armstrong Number
- Check Armstrong Number using user-defined Function
- Using class

But before starting these programs, let me clear the thing about Armstrong number, that what it is.

### What is an Armstrong Number ?

A number that equals to the sum of its own digits, where each digit raised to the power of number of digits. For example, 153 is an Armstrong number, because:

153 = 1^{3}+ 5^{3}+ 3^{3}= 1 + 125 + 27 = 153

The result (153) is equal to the number (153) itself. So it is an Armstrong number.

**Note - **Because the total number of digit in 153 is 3, so each of its digit raised to the power of 3.

**Note - **1, 2, 3, 4, 5, 6, 7, 8, and 9 are all Armstrong numbers.

## Check Armstrong Number

To check whether a given number is an Armstrong number or not in Python, you have to ask from user to enter a number, then apply the formula, check and print the message as shown in the program given below:

print("Enter the Number: ") num = int(input()) temp = num noOfDigit = 0 res = 0 while num>0: num = int(num/10) noOfDigit = noOfDigit+1 num = temp while num>0: rem = num%10 pow = 1 i = 0 while i<noOfDigit: pow = pow*rem i = i+1 res = res+pow num = int(num/10) if res==temp: print("\nThe number is an Armstrong Number") else: print("\nThe number is not an Armstrong Number")

Here is the initial output produced by this Python program:

Now supply the input say **1634** and press `ENTER`

key to check whether it is an armstrong number or
not. Here is its sample run with this user input:

Since **1634** is a four-digit number, therefore:

1634 = 1^{4}+ 6^{4}+ 3^{4}+ 4^{4}= 1 + 1296 + 81 + 256 = 1297 + 337 = 1634

In above program, the following block of code:

while num>0: num = int(num/10) noOfDigit = noOfDigit+1

is used to count the total number of digits of given number. The dry run of this block of code with user input **1634** goes like:

- Initial value,
**noOfDigit=0** - The condition,
**num>0**or**1634>0**evaluates to be true, therefore program flow goes to the body of*while loop*and executes both the statements - That is,
**int(num/10)**or**int(1634/10)**or**163**initialized to**num**. So**num=163**now. And**noOfDigit+1**or**0+1**or**1**gets initialized to**noOfDigit**. So**noOfDigit=1** - Now the condition of
*while loop*again gets evaluated, that is the condition**num>0**or**163>0**evaluates to be true again, therefore program flow goes inside its body and executes that two statements again. This process continues, until the condition evaluates to be false - In this way, after exiting from this loop, the variable
**noOfDigit**holds its value as 4

And the following block of code:

while i<noOfDigit: pow = pow*rem i = i+1

is used to calculate the value of digit's raised to the power of number of digit. The dry run of this block of code goes like:

- Initial values,
**i=0**,**noOfDigit=4**,**pow=1**,**rem=4**(because**1634%10**is equal to**4**) - Now the condition
**i<noOfDigit**or**0<4**evaluates to be true, therefore program flow goes inside its body - And
**pow*rem**or**1*4**or**4**gets initialized to**pow**. So**pow=4**, and the value of**i**gets incremented by 1. So**i=1** - Since the condition at second evaluation, that is
**i<noOfDigit**or**1<4**evaluates to be true again, therefore program flow again goes inside the loop and**pow*rem**or**4*4**or**16**initialized to**pow**. So**pow=16**and the value of**i=2** - At third time also, the condition
**i<noOfDigit**or**2<4**evaluates to be true, therefore program flow again goes inside the loop. This process continues until the condition evaluates to be true - In this way, after exiting from this loop, the variable
**pow**holds its value as**1*4*4*4*4**or**256**that is equal to**4**, where 4 is the digit (last digit of number) and power 4 indicates to total number of digit^{4}

After second evaluation of this block of code, **pow** holds its value as **3*3*3*3**, at third time **pow**
holds **6*6*6*6** and at fourth time **pow** holds **1*1*1*1**

#### Modified Version of Previous Program

This is the modified version of previous program. In this program, we've used **end** to skip printing of an
automatic newline using **print()**. And **rem**noOfDigit** is used to find **rem ^{noOfDigit}**
value. The

**str()**method is used to convert any type of value to string type value. Rest of the things are similar to previous program.

print("Enter the Number: ", end="") num = int(input()) temp = num noOfDigit = len(str(num)) res = 0 while num>0: rem = num%10 res = res + (rem ** noOfDigit) num = int(num/10) if res==temp: print("\n" +str(temp)+ " is an Armstrong Number") else: print("\n" +str(temp)+ " is not an Armstrong Number")

Here is its sample run with user input, **9**:

## Check Armstrong Number using Function

This program uses used-defined function named **checkArmstrongNum()** to check whether a number entered by
user at run-time is an Armstrong number or not.

def checkArmstrongNum(x): noOfDigit = 0 res = 0 temp = x while x>0: x = int(x/10) noOfDigit = noOfDigit + 1 x = temp while x>0: rem = x%10 pow = 1 i = 0 while i<noOfDigit: pow = pow * rem i = i + 1 res = res + pow x = int(x/10) if res==temp: return 1 else: return 0 print("Enter the Number: ", end="") num = int(input()) chk = checkArmstrongNum(num) if chk==1: print(num, "is an Armstrong Number") else: print(num, "is not an Armstrong Number")

Here is its sample run with user input, **371**:

Here is another sample run with user input, **532**:

## Check Armstrong Number using Class

This is the last program of this article on checking Armstrong number, using class, an object-oriented feature of Python:

class CodesCracker: def checkArmstrongNum(self, x): noOfDigit = len(str(x)) res = 0 temp = x while x>0: rem = x%10 res = res + (rem ** noOfDigit) x = int(x/10) if res==temp: return 1 else: return 0 print("Enter the Number: ", end="") num = int(input()) obj = CodesCracker() chk = obj.checkArmstrongNum(num) if chk==1: print(num, "is an Armstrong Number") else: print(num, "is not an Armstrong Number")

An object **obj** is created of type **CodesCracker** class to access its member function named **checkArmstrongNum()**
using **dot (.)** operator.

#### Same Program in Other Languages

« Previous Program Next Program »