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

Tìm các số nguyên tố k với một khoảng cách cụ thể trong một dải ô trong JavaScript

Số nguyên tố K

Một số tự nhiên được gọi là k nguyên tố nếu nó có đúng k thừa số nguyên tố, được tính bằng bội số.

Có nghĩa là mặc dù thừa số nguyên tố duy nhất của 4 là 2 nhưng nó sẽ là số nguyên tố 2 vì -

4 =2 * 2 và cả 2 sẽ được tính riêng, lấy số đếm là 2.

Tương tự, 8 là 3 số nguyên tố vì 8 =2 * 2 * 2 lấy số đếm là 3.

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một số k, một khoảng cách và một phạm vi.

Hàm của chúng ta sẽ trả về một mảng các mảng chứa k số nguyên tố trong phạm vi mà khoảng cách giữa những người đó chính xác bằng khoảng cách được chỉ định.

Ví dụ

Sau đây là mã -

const k = 2;
const step = 2;
const range = [0, 50];
const kPrimeSteps = (k = 1, step = 1, [start, end]) => {
   const res = [];
   let i = start;
   const findLen = (n = 1) => {
      let count = 0, i = 2;
      while (i * i <= n) {
         while (n % i === 0) {
            count++;
            n /= i;
         }
         i++;
      }
      if (n > 1) count++;
      return count;
   }
   while (i <= end - step) {
      if ((findLen(i) == k && findLen(i+step) == k))
      res.push([i, i+step]);
      i++;
   }
   return res;
};
console.log(kPrimeSteps(k, step, range));

Đầu ra

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

[ [ 4, 6 ], [ 33, 35 ] ]