在 JavaScript 中寻找两个具有特定数字间隔的质数


问题

我们需要编写一个 JavaScript 函数,该函数获取一个数字、作为第一个参数的间隔以及作为第二个参数的两个数字的范围数组。我们的函数应返回所有此类素数对的数组,这些数组的绝对差为 gap 并落在指定范围内。

示例

以下为代码 -

 实时演示

const gap = 4;
const range = [20, 200];
const primesInRange = (gap, [left, right]) => {
   const isPrime = num => {
      for(let i = 2; i < num; i++){
         if(num % i === 0){
            return false;
         };
      };
      return true;
   };
   const primes = [];
   const res = [];
   for(let i = left; i < right; i++){
      if(isPrime(i)){
         primes.push(i);
      };
   };  
   let currentNum = primes[0];
   for(let j = 1; j < primes.length; j++){
      if(primes[j] - currentNum === gap){
         res.push(currentNum, primes[j]);
         return res;
      }else{
         currentNum = primes[j];
      };
   };
   return null;
};
console.log(primesInRange(gap, range));

Learn JavaScript in-depth with real-world projects through our JavaScript certification course. Enroll and become a certified expert to boost your career.

输出

以下是控制台输出 -

[37, 41]

更新于:20-4-2021

174 次浏览

开启您的职业

完成课程获得认证

开始
广告