#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0, n = 0;
originalNum = num;
// Count number of digits
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// Calculate sum of digits raised to power n
while (originalNum != 0) {
remainder = originalNum % 10;
result
+= pow(remainder
, n
); originalNum /= 10;
}
if (result == num)
printf("%d is an Armstrong number.\n", num
); else
printf("%d is not an Armstrong number.\n", num
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgbWFpbigpIHsKICAgIGludCBudW0sIG9yaWdpbmFsTnVtLCByZW1haW5kZXIsIHJlc3VsdCA9IDAsIG4gPSAwOwoKICAgIHByaW50ZigiRW50ZXIgYSBudW1iZXI6ICIpOwogICAgc2NhbmYoIiVkIiwgJm51bSk7CgogICAgb3JpZ2luYWxOdW0gPSBudW07CgogICAgLy8gQ291bnQgbnVtYmVyIG9mIGRpZ2l0cwogICAgd2hpbGUgKG9yaWdpbmFsTnVtICE9IDApIHsKICAgICAgICBvcmlnaW5hbE51bSAvPSAxMDsKICAgICAgICArK247CiAgICB9CgogICAgb3JpZ2luYWxOdW0gPSBudW07CgogICAgLy8gQ2FsY3VsYXRlIHN1bSBvZiBkaWdpdHMgcmFpc2VkIHRvIHBvd2VyIG4KICAgIHdoaWxlIChvcmlnaW5hbE51bSAhPSAwKSB7CiAgICAgICAgcmVtYWluZGVyID0gb3JpZ2luYWxOdW0gJSAxMDsKICAgICAgICByZXN1bHQgKz0gcG93KHJlbWFpbmRlciwgbik7CiAgICAgICAgb3JpZ2luYWxOdW0gLz0gMTA7CiAgICB9CgogICAgaWYgKHJlc3VsdCA9PSBudW0pCiAgICAgICAgcHJpbnRmKCIlZCBpcyBhbiBBcm1zdHJvbmcgbnVtYmVyLlxuIiwgbnVtKTsKICAgIGVsc2UKICAgICAgICBwcmludGYoIiVkIGlzIG5vdCBhbiBBcm1zdHJvbmcgbnVtYmVyLlxuIiwgbnVtKTsKCiAgICByZXR1cm4gMDsKfQo=