Write a C program to enter any number from user and check whether given number is Armstrong number or not using for loop. C program for Armstrong number. Logic to check Armstrong numbers in C program.

**Example**

**Input**

Input number: 371

**Output**

371 is armstrong number

## Required knowledge

Basic C programming, For loop, If else

### What is Armstrong number?

An Armstrong number is an

-digit number that is equal to the sum of the *n**n*^{th} powers of its digits. Below are few examples of Armstrong numbers:

6 = 6^{1} = 6

371 = 3^{3} + 7^{3} + 1^{3} = 371

## Logic to check Armstrong number

There are three important concepts required for checking Armstrong number. The entire logic is based upon these three concepts.

Must know -

Below is the step by step descriptive logic to check Armstrong number.

- Input a number from user to be checked for Armstrong. Store it in some variable say num. Make a temporary copy of the value to some another variable for calculation purposes, say originalNum = num.
- Count total digits in the given number. Store it in some variable say digits.
- Initialize another variable to store the sum of power of its digits ,say sum = 0.
- Run a loop till num > 0. The loop structure should look like while(num > 0).
- Inside the loop extract the last digit of num. Store it in some variable say lastDigit = num % 10.
- Now comes the real calculation to find sum of power of digits. Perform sum = sum + pow(lastDigit, digits). Here pow(x, y) returns x
^{y}. - Since the last digit of num is processed. Hence, remove last digit by performing num = num / 10. Repeat step 5-7 till num > 0.
- After loop according to definition if originalNum == sum, then it is Armstrong number otherwise not.

## Program to check Armstrong number

```
/**
* C program to check armstrong number
*/
#include <stdio.h>
#include <math.h>
int main()
{
int originalNum, num, lastDigit, digits, sum;
/*
* Input number from user
*/
printf("Enter any number to check Armstrong number: ");
scanf("%d", &num);
sum = 0;
// Copy the value of num for processing
originalNum = num;
// Find total digits in num
digits = (int) log10(num) + 1;
/*
* Calculate sum of power of digits
*/
while(num > 0)
{
// Extract the last digit
lastDigit = num % 10;
// Compute sum of power of last digit
sum = sum + round(pow(lastDigit, digits));
// Remove the last digit
num = num / 10;
}
// Check for Armstrong number
if(originalNum == sum)
{
printf("%d is ARMSTRONG NUMBER", originalNum);
}
else
{
printf("%d is NOT ARMSTRONG NUMBER", originalNum);
}
return 0;
}
```

Output

Enter any number to check Armstrong number: 371 371 is ARMSTRONG NUMBER

Happy coding 😉

<pre><code> ----Your Source Code---- </code></pre>