// Armstrong = a number that equals the sum of its digits,
// each raised to a power of the number of digits
// For example 153, it's an Armstrong number because 1^3 + 5^3 + 3^3 = 153
#include <iostream>
#include <cmath>
int armstrong(int n) {
int reminder = 0, sum = 0, total_digits = log10(n) + 1;
while (n > 0) {
reminder = n % 10;
sum += pow(reminder, total_digits);
n = n / 10;
}
return sum;
}
int main(void) {
int n = 153; // 1*1*1 + 5*5*5 + 3*3*3 = 153
if (n == armstrong(n))
std::cout << "Armstrong number\n";
else
std::cout << "Not Armstrong number\n";
n = 9474; // 9*9*9*9 + 4*4*4*4 + 7*7*7*7 + 4*4*4*4 = 9474
if (n == armstrong(n))
std::cout << "Armstrong number\n";
else
std::cout << "Not Armstrong number\n";
}
/*
run:
Armstrong number
Armstrong number
*/