Armstrong Number (Narcissistic Number) คือเลขที่ผลรวมของแต่ละหลักยกกำลังจำนวนหลัก (n) เท่ากับตัวเลขเดิม
สูตร
xyz = xⁿ + yⁿ + zⁿ (n = จำนวนหลัก)
ตัวอย่าง
370 = 3³ + 7³ + 0³ = 27 + 343 + 0 = 370 ✓
ตัวอย่างโค้ด
const isArmstrong = number => {
const len = String(number).length;
let sum = 0, num = number;
while (num) {
const digit = num % 10;
sum += Math.pow(digit, len);
num = Math.floor(num / 10);
}
return sum === number;
};
const armstrongBetween = (lower, upper) => {
const res = [];
for (let i = lower; i <= upper; i++) {
if (isArmstrong(i)) res.push(i);
}
return res;
};
console.log(armstrongBetween(1, 400));
ผลลัพธ์
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371 ]
Armstrong Numbers ที่รู้จัก
1-9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834...