C Program to find if the input is a Armstrong Number or Not

Problem

Write a program in C to find if a given number is Armstrong number or not.

How to check if a number is a Armstrong number or not in C programming Language ?

A given number is a Armstrong number of order n if

abc… = an + bn + cn + …

For example , 371 is a Armstrong number because the result of the following leads to the number by itself.

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

#include <stdio.h>
#include <math.h>
int main()
{
    int inputNumber, temp, remainder;
    int output = 0, index = 0 , i =0;
    printf("Abundantcode.com coding samples \n");
    printf("Enter the Number : ");
    scanf("%d", &inputNumber);

    temp = inputNumber;
    
    while (temp != 0)
    {
        temp /= 10;
        ++index;
    }

    temp = inputNumber;

    while (temp != 0)
    {
        remainder = temp%10;
        output += pow(remainder,index);
        temp /= 10;
    }

    if(output == inputNumber)
        printf("%d is an Armstrong number.", inputNumber);
    else
        printf("%d is not an Armstrong number.", output);

    return 0;
}

Output

Abundantcode.com coding samples

Enter the Number : 371    
371 is an Armstrong number