Số tự ái
Một số tự ái trong một số đã cho, cơ số b là một số là tổng các chữ số của chính nó, mỗi chữ số được nâng lên thành lũy thừa của số chữ số.
Ví dụ -
153 = 1^3 + 5^3 + 3^3 = 1+125+27 = 153
Tương tự,
1 = 1^1 = 1
Phương pháp tiếp cận
Đầu tiên chúng ta sẽ đếm số chữ số bằng vòng lặp while. Sau đó, với một vòng lặp while khác, chúng tôi chọn chữ số cuối của số và cộng lũy thừa (số đếm) của nó thành một tổng biến. Sau vòng lặp, chúng tôi trả lại người dân để kiểm tra xem tổng có bằng số hay không.
Mã cho cách tiếp cận này sẽ là -
Ví dụ
const isNarcissistic = (num) => { let m = 1, count = 0; while(num / m > 1){ m *= 10; count++; }; let sum = 0, temp = num; while(temp){ sum += Math.pow(temp % 10, count); temp = Math.floor(temp / 10); }; return sum === num; }; console.log(isNarcissistic(153)); console.log(isNarcissistic(1634)); console.log(isNarcissistic(1433)); console.log(isNarcissistic(342));
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
true true false false