Q:

Write C program to find Armstrong numbers between 1 to n

0

Write C program to find Armstrong numbers between 1 to n

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

#include <stdio.h>
#include <math.h> //defines common mathematical functions

int main()
{
    int lower, higher, i, temp1, temp2, remainder, n = 0, result = 0;

    printf("Enter two numbers: ");
    //Reading numbers from user
    scanf("%d %d", &lower, &higher);

    printf("Armstrong numbers between %d an %d are: ", lower, higher);
    for(i = lower + 1; i < higher; ++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)
        {
            remainder = temp2 % 10;
            result += pow(remainder, n);
            temp2 /= 10;
        }

        // checking if number i is equal to the sum of nth power of its digits
        if (result == i) {
            printf("%d ", i);
        }

        // resetting the values to check Armstrong number for next iteration
        n = 0;
        result = 0;

    }
    return 0;
}

Result:

Enter two numbers: 200

500

Armstrong numbers between 200 an 500 are: 370 371 407 

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now