Hello there! Today let us learn something Interesting, Armstrong Number. We would be understanding what the number is and then implement a program to check if a number is an Armstrong Number or not.
What is an Armstrong Number?
A number of
n digits is an Armstrong number, if sum of each digit raised to the power of the no of digits is equal to the original number.
Armstrong Number definition is : abcd…(n-digits) = a^n + b^n + c^n + d^n + . . . . . and so on.
Examples of Armstrong Number
Example 1 : 153
Total number of digits = 3
Calculation (digit – wise ) = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
The calculation done is directly equal to the original number. Hence the number is an Armstrong number.
Example 2 : 548834
Total number of digits = 6
Calculation (digit – wise) = 5^6 + 4^6 +8^6 + 8^6 + 3^6 + 4^6 = 15625 + 4096 + 262144 + 262144 + 729 + 4096 = 548834
The calculations done is directly equal to the original number. Hence the number is an Armstrong Number.
Algorithm to check Armstrong Number
To check if a number is an Armstrong number, one needs to follow the following steps
- Count the number of digits in the number.
- Each digit is accessed one after another with the help of mod and division operations
- Each digit is raised to the power of the number of digits and the result is stored in a separate variable
- Steps 2 and 3 are repeated until the digits exhaust.
- Check the result calculated with the original number
- If It matches: Armstrong Number
- Otherwise: Not an Armstrong Number
PseudoCode for Armstrong Number
The code below shows the pseudo code to check if a number is an Armstrong Number:
READ n CALCULATE NO OF DIGITS n_digit MAKE A COPY OF n result=0 CHECK DIGIT BY DIGIT: WHILE n!=0 GET CURRENT DIGIT : digit = n % 10 UPDATE RESULT : result = result + digit^(n_digit) TRIM THE LAST DIGIT : n = n / 10 ENDWHILE CHECK FOR ARMSTRONG NUMBER: IF result==COPY OF n PRINT "ARMSTRONG NUMBER" ELSE PRINT "NOT AN ARMSTRONG NUMBER"
Implementing Armstrong Number Checking in Python
Now that we know about what Armstrong Number is and the steps to implement that, let’s implement the Armstrong checking line by line.
1. Create the intital variables
We first take an input
n and then calculate the length of the input. We also store a copy of the input so that no matter how much we change the original number, we have the copy to check Armstrong’s number later. We also initialized the result as 0.
The code for the same is shown below:
n = input() n_digit = len(n) n=int(n) copy_n=n result = 0
2. Traversing through the number and Updating Result
To access each digit we take the modulus of the number ( mod 10 ) to extract the last digit of the number. The next step involves updating the result as the sum of the previous result and the digit raised to the power of the number of digits.
The last and final step we take is divide the number by 10 to drop the last digit from the number. The same process is repeated until there are no more digits are left in the number.
The code for the same is shown below:
while(n!=0): digit = n%10 result=result+pow(digit,n_digit) n=int(n/10)
3. Checking if the number is an Armstrong Number or not
The final step is to check the copy of the number we created earlier with the result calculated to finally tell if the number is an Armstrong number or not. The code for the same is shown below:
if(result==copy_n): print("Armstrong Number!") else: print("Not an Armstrong Number!")
Output Samples for the code
For now I tested the program for four inputs. The outputs for all four is shown below:
Number 1: 153
153 Armstrong Number!
Number 2: 121
121 Not an Armstrong Number!
Number 3: 548834
548834 Armstrong Number!
Number 4: 9468632
9468632 Not an Armstrong Number!
Congratulations! You have successfully learned about Armstrong Number and implemented the same!
But don’t stop here! Keep Reading and Learning!