/* * Program to Display Armstrong Numbers Between Two Intervals */ #include int pow(int, int); /* Entry point to program */ int main() { unsigned int low, high, i, temp1, temp2, rem, n = 0, result = 0; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Armstrong numbers between %u and %u are: ", low, high); for (i = low + 1; i < high; ++i) { temp2 = i; temp1 = i; /* Number of digits calculation */ while (temp1 != 0) { temp1 /= 10; ++n; } /* Result contains sum of nth power of its digits */ while (temp2 != 0) { rem = temp2 % 10; result += pow(rem, n); temp2 /= 10; } /* Check if i is equal to the sum of nth power of its digits */ if (result == i) { printf("%d ", i); } /* Resetting the values */ n = 0; result = 0; } return 0; } /* Function computes the power of a number */ int pow(int base, int exponent) { int pow = 1; for (exponent; exponent > 0; exponent--) { pow = pow * base; } return pow; }