Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การหาตัวเลข k-prime ที่มีระยะทางเฉพาะในช่วงใน JavaScript


เค-ไพรม์ นัมเบอร์

จำนวนธรรมชาติเรียกว่า k-prime หากมีตัวประกอบ k เฉพาะ นับด้วยการคูณ

ซึ่งหมายความว่าแม้ว่าตัวประกอบเฉพาะของ 4 คือ 2 แต่มันจะเป็นตัวเลข 2 ไพรม์เพราะ −

4 =2 * 2 และ 2s ทั้งสองจะถูกนับแยกกันโดยนับเป็น 2

ในทำนองเดียวกัน 8 คือ 3-prime เพราะ 8 =2 * 2 * 2 กำลังนับเป็น 3

ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลข k ระยะทางและช่วง

ฟังก์ชันของเราควรส่งคืนอาร์เรย์ของอาร์เรย์ที่มีตัวเลข k-prime ภายในช่วงระยะห่างระหว่างใครที่เท่ากับระยะทางที่ระบุทุกประการ

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

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