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