Open In App

C Program To Find Armstrong Numbers Between 1 to 1000

Last Updated : 15 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisites: Program for Armstrong Numbers

A positive integer of n digits is called Armstrong number of order n (order is the number of digits) if 

xyz… = pow(x,n) + pow(y,n) + pow(z,n) + …. 

Here we will build a C Program to print Armstrong numbers between 1 to 1000

Input:

lowerlimit = 1
higherlimit = 1000

Output:

1 2 3 4 5 6 7 8 9 153 370 371 407 

Example:

C




// C Program to Display Armstrong
// numbers between 1 to 1000
#include <math.h>
#include <stdio.h>
  
int power(int x, unsigned int y)
{
    int res = 1; // Initialize result
  
    while (y > 0) {
        // If y is odd, multiply
        // x with result
        if (y & 1)
            res = res * x;
  
        // y must be even now
        y = y >> 1; // y = y/2
        x = x * x; // Change x to x^2
    }
    return res;
}
  
int main()
{
    printf("Armstrong Numbers between 1-1000 are:\n");
  
    for (int i = 1; i < 1000; ++i) {
        int x = i;
        int n = 0;
  
        // number of digits calculation
        while (x != 0) {
            x /= 10;
            ++n;
        }
        int powersum = 0;
        x = i;
  
        // finding the sum of nth
        // power of its digits
        while (x != 0) {
            int digit = x % 10;
            powersum += power(digit, n);
            x /= 10;
        }
        // checking if the obtained
        // number is armstrong or not
        if (powersum == i)
  
            // printing the result
            printf("%d ", i);
    }
    printf("\n");
    return 0;
}


Output

Armstrong Numbers between 1-1000 are:
1 2 3 4 5 6 7 8 9 153 370 371 407 


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads