Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một số nguyên dương n viết dạng abcd... (a, b, c, d... là chữ số) và một số nguyên dương p. Ta muốn tìm số nguyên dương k, nếu tồn tại, sao cho tổng các chữ số của n lấy lũy thừa liên tiếp của p bằng k * n. Cụ thể: (a^p + b^(p+1) + c^(p+2) + d^(p+3) + ...) = n * k. Nếu tồn tại, trả về k, ngược lại -1.
Ví dụ
Dưới đây là mã nguồn:
const num = 695;
const p = 2;
const findDesiredNumber = (num, p) => {
let sum = 0;
let str = String(num);
for(const char in str){
sum += str[char] * p;
p++;
};
return Number.isInteger(sum/num) ? sum/num : -1;
};
console.log(findDesiredNumber(num, p));Kết quả
Kết quả đầu ra trong console:
-1