In this C++ tutorial, you will learn how to write a program to check if the given number is Armstrong Number or not.

C++ Armstrong Number

To check if a number is an Armstrong number in C++, check the equality of given number and the sum of individual digits raised to the power of the length of the number.

For example if abcd... is given number, then this number is an Armstrong number if the following condition returns true.

abcd... == a^n + b^n + c^n + d^n + ...

where n is length of the number abcd..., and a^n is the digit a in the number raised to the power of n.

Program

In the following program, we read an integer value from user, and then check if this number is an Armstrong number or not by computing the righthand side expression and equating it with the given original number.

C++ Program

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int num, originalNum, remainder, n = 0, result = 0, power;
    cout << "Enter an integer: ";
    cin >> num;

    originalNum = num;

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

    originalNum = num;

    // Calculate the result
    while (originalNum != 0) {
        remainder = originalNum % 10;

        // Calculate the power of remainder
        power = round(pow(remainder, n));
        result += power;

        originalNum /= 10;
    }

    if (result == num)
        cout << num << " is an Armstrong number.";
    else
        cout << num << " is not an Armstrong number.";

    return 0;
}

Output

Enter an integer: 371
371 is an Armstrong number.
Program ended with exit code: 0
Enter an integer: 123
123 is not an Armstrong number.
Program ended with exit code: 0

Reference tutorials for the program

ADVERTISEMENT

Conclusion

In this C++ Tutorial, we learned how to check if given number is an Armstrong Number, with example.