C program to check Armstrong number


In this article, you will learn the concept of C program to check Armstrong number.

Armstrong Number

A three digits number is said to be an Armstrong number if the sum of the cubes of its individual digit is equal to the number itself.

For example:

371 = 3*3*3 + 7*7*7 + 1*1*1

Please go through following articles of C programming to understand the concept of the program.

C program to check Armstrong number of three digits

#include <stdio.h>

int main()
{
   int num, temp, rem, sum = 0;

   printf("Enter a three digit number: ");
   scanf("%d", &num);

   temp = num;

   while (num != 0)
   {
      rem = num % 10;
      sum += rem * rem * rem;
      num = num / 10;
   }

   if (temp == sum)
      printf("\n%d is an Armstrong number", temp);
   else
      printf("\n%d is not an Armstrong number", temp);

   return 0;
}

Output

3-digit-armstrong-number

C program to check Armstrong number of any digit

#include <stdio.h>
#include <math.h>

int main()
{
   int num, temp, rem;
   int sum = 0, n = 0;

   printf("Enter a number: ");
   scanf("%d", &num);

   temp = num;

   //logic to find the number of digits in a given number
   while (temp != 0)
   {
      temp = temp / 10;
      n++;
   }

   temp = num;

   while (temp != 0)
   {
      rem = temp % 10;
      sum = sum + pow(rem, n);
      temp = temp / 10;
   }

   if (num == sum)
      printf("\n%d is an Armstrong number.", num);
   else
      printf("\n%d is not an Armstrong number.", num);

   return 0;
}

Output

C program to check Armstrong number

Explanation
In the second program, at first, we calculated the number of digits of the given number.

We used standard library function pow to calculate the cube of the remainder.