Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm một số, khi được nhân với số đầu vào sẽ tạo ra số đầu vào trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một số nguyên dương n được viết dưới dạng abcd ... (a, b, c, d ... là các chữ số) và một số nguyên dương p

  • chúng ta muốn tìm một số nguyên dương k, nếu nó tồn tại, chẳng hạn như tổng các chữ số của n lấy các lũy thừa liên tiếp của p bằng k * n.

Nói cách khác -

Có số nguyên k như:(a ^ p + b ^ (p + 1) + c ^ (p + 2) + d ^ (p + 3) + ...) =n * k

Nếu đúng như vậy, chúng ta sẽ trả về k, nếu không trả về -1.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

-1