# Armstrong number program in C

In this post, you will learn how to write a **C program** to check whether a given number is **Armstrong** or not.

A number is called an **Armstrong** number if the sum of cubes of digits of the number is equal to the number itself. It is also known as the **Narcissistic** number. To lay it out simply, assuming we have a 3-digit number, then each of the digits is raised to the power of three and added to get a number. If the number obtained equals the original number, we call that an Armstrong number. In number theory, we can say an Armstrong number in a given number base b is a number that is the sum of its own digits, each raised to the power of the number of digits.

## Formula to check Armstrong number

A positive number of **n** digits is called an Armstrong number of order **n**.

**abcde.... = a**^{n} + b^{n} + c^{n} + d^{n} + e^{n} +

The following example demonstrates why 371 is an Armstrong number.

```
371 = (3*3*3)+(7*7*7)+(1*1*1)
where:
(3*3*3)=27
(7*7*7)=343
(1*1*1)=1
So:
27+343+1 = 371
```

## C program to check Armstrong number using while loop

```
// C program to find Armstrong number
#include <stdio.h>
int main() {
int num, orgnum, remainder, sum = 0;
// getting input from user
// and store in a variable
printf("Enter a three-digit number: ");
scanf("%d", &num);
orgnum = num;
// Here, we are adding cubes of
// every digit and storing the sum
// in a variable
while (orgnum != 0) {
// remainder contains the last digit
remainder = orgnum % 10;
sum += remainder * remainder * remainder;
// removing last digit from the original number
orgnum /= 10;
}
// check, if sum of cubes of every digit is
// equal to number itself, then the number
// is armstrong
if (sum == num)
printf("%d is an Armstrong number.", num);
else
printf("%d is not an Armstrong number.", num);
return 0;
}
```

**Output of the above code-**

```
Enter a three-digit number: 370
370 is an Armstrong number.
Enter a three-digit number: 154
154 is not an Armstrong number.
Enter a three-digit number: 153
153 is an Armstrong number.
```

In the above example, we have taken input from the user and stored it in a variable **num**. Next, we have split all the digits of the **num** and found the cube value of the digits. Then, we added all cube values together and saved the output to the variable **sum**. If the **sum** equals to **num**, then the **num** is an Armstrong number, and if the **sum** is not equals to **num**, then the **num** is not an Armstrong number.

## C program to check Armstrong number using for loop

```
#include <stdio.h>
void main(){
int num,r,sum=0,temp;
printf("Enter a number:");
scanf("%d",&num);
for(temp=num;num!=0;num=num/10){
r=num % 10;
sum=sum+(r*r*r);
}
if(sum==temp)
printf("%d is an Armstrong number.\n",temp);
else
printf("%d is not an Armstrong number.\n",temp);
}
```

**Output of the above code:**

```
Enter a number:22
22 is not an Armstrong number.
Enter a number:31
31 is not an Armstrong number.
Enter a number:370
370 is an Armstrong number.
```

### Related Articles

**C program to check whether a number is positive or negative**

Priority queue using array in C

Simple calculator program in C

C program for simple interest

Bit stuffing program in C

Prime factors of a number in c

Write a program to check leap year in c

C program to find area of rectangle

C program to convert celsius to fahrenheit

Fibonacci series program in C using recursion

Write a program to find area of circle in C

C program to find greatest of three numbers

C program for addition of two numbers

C program to calculate compound interest

C program to find the ASCII value of a character

C program to convert Decimal to Octal

C program to convert decimal to binary

Write a C program to calculate Simple Interest

C program to check whether a number is even or odd

Priority queue using array in C

Simple calculator program in C

C program for simple interest

Bit stuffing program in C

Prime factors of a number in c

Write a program to check leap year in c

C program to find area of rectangle

C program to convert celsius to fahrenheit

Fibonacci series program in C using recursion

Write a program to find area of circle in C

C program to find greatest of three numbers

C program for addition of two numbers

C program to calculate compound interest

C program to find the ASCII value of a character

C program to convert Decimal to Octal

C program to convert decimal to binary

Write a C program to calculate Simple Interest

C program to check whether a number is even or odd