Write a C program to check whether a given number is an Armstrong number or not.

Manish Methani
2 min readOct 18, 2021

2 min 45 sec

Author: Manish Methani

An Armstrong number is a number that equals the sum of the cube of each digit in a number.

For example, suppose a given number is 153.

To check whether a given number is Armstrong or not, we have to take the cube of each digit in a number and take a sum of those.

153 = (1*1*1) + (5*5*5) + (3*3*3)

After the addition of the cube of each digit, we get the original number which is 153. Hence, the given number is Armstrong.

#include <stdio.h>
int main()
{
int n = 153, sum = 0, remainder = 0,tempNumber;
tempNumber = n;
while(tempNumber!=0)
{
remainder = tempNumber % 10;
sum = sum + (remainder*remainder*remainder);
tempNumber /= 10;
}
if(sum==n)
{
printf("%d is an Armstrong number.",n);
}
else
{
printf("%d is not an Armstrong number.",n);
}
return 0;
}

Output

153 is an Armstrong number

Program Logic

  1. First, we take the original number into a temporary variable which is tempNumber.
  2. Then, we get the last digit of a temporary number using the modulo method inside a loop.
  3. After getting the last digit of a number, we added it with the cube of that last digit number.
  4. Then assigned the remaining digits except for the last digit of a number using the Quotient method.
  5. This process will be in the loop till we find that givenNumber do not reach 0.

If at the end we find that this new number after addition is found as. same or not. If yes, then the given number is an Armstrong number else it is not an Armstrong number.

C Program to check whether a given number is Armstrong or not using a user-defined function

#include <stdio.h> 
int isArmstrong(int n)
{
int tempNumber=n;
int remainder,sum;
sum=0;
while(tempNumber!=0)
{
remainder=tempNumber%10;
sum = sum + (remainder*remainder*remainder);
tempNumber/=10;
}
if(sum==n)
return 1
else
return 0;
}
int main()
{
int n = 153;
if(isArmstrong(n))
printf("%d is an Armstrong number.",n);
else
printf("%d is not an Armstrong number.",n);
return 0;
}

Output

153 is an Armstrong number

Topics you might like to read,

  1. What is Palindrome number in C Language?
  2. Program for Fibonacci number in C Language
  3. String functions in C — strncat, strcpy, strncpy, strchr, strrchr, strstr functions
  4. Last minute notes on Data Structures
  5. Write a C program to check whether a given number is prime or not

--

--

Manish Methani

Entrepreneur | Founder & CEO at Codzify | Passionate Coder 👨‍💻 | Built Codzify.com, CodePad (An Online Compiler) from Scratch.