Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm các số k-nguyên tố có khoảng cách xác định trong phạm vi bằng JavaScript


Số k-nguyên tố

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ố, tính theo bội số.

Điều này có nghĩa là dù thừa số nguyên tố duy nhất của 4 là 2, nó vẫn là số 2-nguyên tố vì:

4 = 2 * 2 và cả hai 2 được đếm riêng biệt đưa số lượng lên 2.

Tương tự, 8 là 3-nguyên tố vì 8 = 2 * 2 * 2 đưa số lượng lên 3.

Vấn đề

Chúng ta cần 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 phải trả về một mảng các mảng chứa các số k-nguyên tố trong phạm vi mà khoảng cách giữa chúng chính xác bằng khoảng cách chỉ định.

Ví dụ

Dưới đâ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));

Kết quả

Kết quả console:

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