C Program to generate Armstrong number within a given range

Program

#include <stdio.h>
int check_armstrong(int);
int power(int, int);
void main ()
{
	int a, b, i;
	printf("Input two integer numbers\n");
	scanf("%d %d", &a, &b);
	printf("List of armstrong numbers\n");
	for (i = a; i <= b; i++)
	{
		if (check_armstrong(i) == 1)
		printf("%d\n", i);
   }
}
int check_armstrong(int n)
{
	long long sum = 0, temp;
	int remainder, digits = 0;
	temp = n;
	while (temp != 0)
	{
		digits++;
		temp = temp/10;
	}
	temp = n;
	while (temp != 0)
	{
		remainder = temp % 10;
		sum = sum + power(remainder, digits);
		temp = temp / 10;
	}
	if (n == sum)
		return 1;
	else
		return 0;
}
int  power(int n, int r)
{
	int i, p = 1;
	for (i = 1; i <= r; i++)
		p = p * n;
	return p;
}

Output

Input two integer numbers
10
1000
List of armstrong numbers
153
370
371
407