In this guide, we will write a **C program to print all Armstrong numbers between the given ranges**.

A number is called Armstrong number, if it satisfies the following condition:

abc...n = a^{n}+ b^{n}+ c^{n}+... Here, n is the number of digits in the number

For example:

2 is an Armstrong number because 2 = 2^{1}

12 is not an Armstrong number because 12 != 1^{2} + 2^{2}

370 is an Armstrong number because 370 = 3^{3} + 7^{3} + 0^{3}

## C Program

Steps in the following program:

- Get the lower range and higher range values from the user using scanf.
- If the user enters higher range first and lower range second then swap the ranges so that the program works as expected.
- Check each number in the given range and print the number if it is an Armstrong number.

#include <math.h> #include <stdio.h> int main() { int lowRange, highRange, number, checkNumber, rem, count = 0; double result = 0.0; printf("Enter the lower range and upper range: "); scanf("%d %d", &lowRange, &highRange); printf("Armstrong numbers from %d to %d are: ", lowRange, highRange); // if higher range is lower than lower range then swap those ranges if (highRange < lowRange) { highRange += lowRange; lowRange = highRange - lowRange; highRange -= lowRange; } // Check each number between lowerRange and highRange for (number = lowRange; number <= highRange; number++) { checkNumber = number; // Counting number of digits in the checkNumber while (checkNumber != 0) { checkNumber /= 10; ++count; } //restoring the value of checkNumber after counting digits checkNumber = number; // calculate sum of nth power of individual digits // and store the result in the variable result while (checkNumber != 0) { rem = checkNumber % 10; result += pow(rem, count); checkNumber /= 10; } // check if number is equal to result, if it is then //the number is an Armstrong number so print that number if ((int)result == number) { printf("%d ", number); } // resetting the values for the next number in the range count = 0; result = 0; } return 0; }

**Output: **Armstrong numbers between 1 and 1000