// 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 <stdio.h>
#include <stdbool.h>
#include <math.h>
bool armstrong(int n) {
int reminder = 0, sum = 0, total_digits = log10(n) + 1;
int temp = n;
while (temp > 0) {
reminder = temp % 10;
sum += (float)pow((float)reminder, (float)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)) {
printf("%d, ", i);
}
}
return 0;
}
/*
run:
153, 370, 371, 407,
*/