- 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 = 13 + 53 + 33 = 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 = 14 + 64 + 34 + 44 = 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 44, where 4 is the digit (last digit of number) and power 4 indicates to total number of digit
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 remnoOfDigit 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 fresherearth: 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 = fresherearth() 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 fresherearth class to access its member function named checkArmstrongNum() using dot (.) operator.
Same Program in Other Languages
« Previous Program Next Program »