C Program to check whether a given number is an Armstrong Number or not using user defined power function
Program
#include <stdio.h>
int power(int, int);
void main()
{
int num, sum = 0, temp, rem, digits = 0;
printf("Input an integer\n");
scanf("%d", &num);
temp = num;
while (temp != 0)
{
digits++;
temp = temp / 10;
}
temp = num;
while (temp != 0)
{
rem = temp % 10;
sum = sum + power(rem, digits);
temp = temp / 10;
}
if (num == sum)
printf("%d is an Armstrong number.\n", num);
else
printf("%d is not an Armstrong number.\n", num);
}
int power(int n, int r)
{
int i, p = 1;
for (i = 1; i <= r; i++)
p = p * n;
return p;
}
Output 1
$ gcc armstrong.c
$ ./a.out
Input an integer
370
370 is an Armstrong number.
Output 2
$ gcc armstrong.c
$ ./a.out
Input an integer
275
275 is not an Armstrong number