Support this post with a reaction:
                
                
                
In this tutorial, we are going to learn how to write a program in c to check a given input number is Armstrong or not?
So before moving directly on the writing program, I will recommend you please first know :
What is Armstrong Number?
- Armstrong Number is also known as narcissistic number.
 - A number which have n digits can be say that Armstrong number if its sum of nth powers of its digits is equal to original number.
 - Like Armstrong number of 3 digits is a number which is equal to the sum of cube of its digits.
 - For eg: 153, 370 etc.
 
Example of Armstrong number
Lets see it practically by calculating it,
Suppose I am taking 153 for an example
First calculate the cube of its each digits
1^3 = (1*1*1) = 1
5^3 = (5*5*5) = 125
3^3= (3*3*3) = 27
Now add the cube
1+125+27 = 153
It means 153 is an Armstrong number.
Ok, Then move on the program where your concept will be cleared 🙂
C Program to check a number is Armstrong or not
#include<stdio.h>
#include<math.h>
#include<conio.h>
void main(){
	int number,i=0,n,result=0,number1,temp;
	printf("enter the number:");
	scanf("%d",&number);
	number1=number;
	temp=number;
	while(number!=0){
		number=number/10;
		i++;
	}
	while(number1!=0){
		n=number1%10;
		result=result+pow(n,i);
		number1=number1/10;
		}
	if(temp==result)
		printf("number is armstrong");
		else
		printf("not a armstrong");
	getch();
} 
Output 1:
enter the number:153
number is armstrong
Output 2:
enter the number:321
not a armstrong
Explanation of Armstrong number validating program in c
- In the above program, you can see that I have Math.h header file because We need pow() function to calculate power and this function is defined in Math.h header file.
 - Here I have taken almost six variable because in most of cases, we need to persist the previous value for the validation purpose.
 - So first, I have taken input from the user and stored it in the ‘number’ variable.
 - Now again, I am assigning the same variable in the ‘temp’ and ‘number1’ variable.
 - First, while a loop is used to calculate the count of digits in a given number, we will use this count to calculate the power of each digit.
 - And Second While loop is responsible for calculating the power of each digit and adding them together.
 - Now, at last, we have if statement which I have used to validate our result after the performing operations.
 - Using this if statement we are validating our original number(stored in ‘temp’ variable) is equal or not to calculated result ( stored in ‘result’ variable).
 - Its value of temp and result is equal. It means that number is an Armstrong, and if not equal, then it is not an Armstrong number.
 
I hope now you have an idea of how to calculate and write a program to check number is an Armstrong or not in C.