আর্মস্ট্রং সংখ্যা হলো যেসব সংখ্যায় প্রতিটি অঙ্কের ঘাত (অঙ্কের সংখ্যা) যোগ করলে মূল সংখ্যাটি পাওয়া যায়।
ফর্মুলা
xy...z = xⁿ + yⁿ + ... + zⁿ (n = অঙ্কের সংখ্যা)
উদাহরণ
370: 3³ + 7³ + 0³ = 27 + 343 + 0 = 370 ✓ 153: 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ✓
সমাধান
const isArmstrong = (number) => {
const digits = String(number).split('').map(Number);
const n = digits.length;
const sum = digits.reduce((acc, digit) => {
return acc + Math.pow(digit, n);
}, 0);
return sum === number;
};
const armstrongBetween = (lower, upper) => {
const result = [];
for (let i = lower; i <= upper; i++) {
if (isArmstrong(i)) {
result.push(i);
}
}
return result;
};
// টেস্ট
console.log(armstrongBetween(1, 400));
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371]
console.log(armstrongBetween(100, 1000));
// [153, 370, 371, 407]
জানা আর্মস্ট্রং সংখ্যা (বেস ১০)
- ১-৯: সব এক-অঙ্কের সংখ্যা
- ৩-অঙ্কের: ১৫৩, ৩৭০, ৩৭১, ৪০৭
- ৪-অঙ্কের: ১৬৩৪, ৮২০৮, ৯৪৭৪
- ৫-অঙ্কের: ৫৪৭৪৮, ৯২৭২৭, ৯৩০৮৪
অপ্টিমাইজেশন
পাওয়ার ক্যালকুলেশন ক্যাশ করে রাখা যায়:
const powerCache = {};
const fastPow = (base, exp) => {
const key = `${base}^${exp}`;
if (powerCache[key]) return powerCache[key];
return powerCache[key] = Math.pow(base, exp);
};
উৎপাদন
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371 ]