সংক্ষিপ্ত বিবরণ
আর্মস্ট্রং নাম্বার হল এমন একটি সংখ্যা যেটি তার অঙ্কগুলোর প্রত্যেককে অঙ্কসংখ্যা ঘাত দিয়ে তুললে যোগফলটি মূল সংখ্যার সমান হয়।
উদাহরণ
153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ✓ 1634 = 1⁴ + 6⁴ + 3⁴ + 4⁴ = 1 + 1296 + 81 + 256 = 1634 ✓
অ্যালগরিদম
- অঙ্কসংখ্যা (order) বের করুন
- প্রতিটি অঙ্কের জন্য `digit^order` হিসাব করে যোগ করুন
- যোগফল মূল সংখ্যার সমান কিনা যাচাই করুন
সি কোড
#include <stdio.h>
int power(int base, int exp) {
int res = 1;
while (exp--) res *= base;
return res;
}
int countDigits(int n) {
int c = 0;
while (n) { c++; n /= 10; }
return c;
}
int isArmstrong(int n) {
int orig = n, order = countDigits(n), sum = 0;
while (n) {
sum += power(n % 10, order);
n /= 10;
}
return sum == orig;
}
int main() {
int n = 1634;
if (isArmstrong(n))
printf("%d is an Armstrong number\n", n);
else
printf("%d is not an Armstrong number\n", n);
return 0;
}
আউটপুট
1634 is an Armstrong number