Số Narcissistic
Số Narcissistic (còn gọi số Armstrong) trong cơ số b là số bằng tổng các chữ số của nó lũy thừa số lượng chữ số.
Ví dụ: 153 = 1^3 + 5^3 + 3^3 = 1+125+27 = 153. Cũng: 1 = 1^1 = 1.
Cách tiếp cận
Đếm số chữ số bằng while. While thứ hai: tách chữ số cuối, cộng lũy thừa (số chữ số) vào sum. Cuối cùng so sánh sum với số gốc.
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));Kết quả
Đầu ra trong console sẽ là:
true true false false