Armstrong Number in C

Sure! An Armstrong number, also known as a narcissistic number, is a number that is equal to the sum of its own digits each raised to the power of the number of digits. For example, 153 is an Armstrong number because 1^3 + 5^3 + 3^3 = 153.

Here’s an example of how you can check for Armstrong numbers in C:

#include <stdio.h>
#include <math.h>

int isArmstrong(int number);

int main() {
    int number;

    printf("Enter a number: ");
    scanf("%d", &number);

    if (isArmstrong(number)) {
        printf("%d is an Armstrong number.\n", number);
    } else {
        printf("%d is not an Armstrong number.\n", number);
    }

    return 0;
}

int isArmstrong(int number) {
    int originalNumber, remainder, result = 0, n = 0;

    originalNumber = number;

    // count the number of digits
    while (originalNumber != 0) {
        originalNumber /= 10;
        ++n;
    }

    originalNumber = number;

    // calculate the result
    while (originalNumber != 0) {
        remainder = originalNumber % 10;
        result += pow(remainder, n);
        originalNumber /= 10;
    }

    // check if the number is Armstrong
    if (result == number) {
        return 1;
    } else {
        return 0;
    }
}

In this program, we define the isArmstrong function to check whether a given number is an Armstrong number. It calculates the sum of each digit raised to the power of the number of digits. If the resulting sum is equal to the original number, it returns 1; otherwise, it returns 0.

In the main function, we take input from the user and call the isArmstrong function to determine whether the input number is an Armstrong number. Finally, we display the appropriate message based on the result.

Please note that this code assumes that the input number is a non-negative integer.