โจทย์
หา 2 ตัวเลขที่ผลรวม = n และผลคูณ = m ถ้าไม่มีคืน false
ตัวอย่างโค้ด
const perfectNumbers = (sum, prod) => {
for(let i = 0; i < (sum / 2); i++){
if(i * (sum-i) !== prod){
continue;
};
return [i, (sum-i)];
};
return false;
};
// 12 12 ไม่ใช่ distinct numbers
console.log(perfectNumbers(24, 144));
console.log(perfectNumbers(14, 45));
console.log(perfectNumbers(21, 98));
ผลลัพธ์
false [ 5, 9 ] [ 7, 14 ]
คำอธิบาย
วนลูป i จาก 0 ถึง sum/2 ตรวจสอบ i * (sum-i) == prod
24,144: i=12 → 12*12=144 แต่ 12,12 ไม่ distinct → false
14,45: i=5 → 5*9=45 ✓ → [5,9]
21,98: i=7 → 7*14=98 ✓ → [7,14]