// 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>
bool armstrong(int n) {
int reminder = 0, sum = 0, total_digits = log10(n) + 1;
int temp = n;
while (temp > 0) {
reminder = temp % 10;
sum += pow(reminder, total_digits);
temp = temp / 10;
}
if (sum == n) {
return true;
}
return false;
}
int main(void) {
for (int i = 100; i <= 999; i++) {
if (armstrong(i)) {
std::cout << i << ", ";
}
}
}
/*
run:
153, 370, 371, 407,
*/