javascript - 我可以让这个prime Finder 代码更简洁吗?

标签 javascript primes

我觉得我在某个地方有一个额外的变量。

特别是找到的变量。有没有更短或更有效的方法来编写这个?

// 2, 3, 5, 7, 11, 13, 17

function findPrimes(N){
  const primes = [2];

  for(let i = 2; i <= N; i++){
    let found = true;

    for(let j = 0; j < primes.length; j++){
      if( i % primes[j] === 0){
        found = false;
        break;
      }  
    }
    if(found){
      primes.push(i);
    }
  }
  return primes;
}

findPrimes(100);

最佳答案

取决于您希望代码的详细程度和文字程度。例如,这应该与您的算法完全相同:

// 2, 3, 5, 7, 11, 13, 17

function findPrimes(N) {
  const primes = [2];

  for (let i = 3; i <= N; i++) {
    if (!primes.some(n => i % n === 0)) {
      primes.push(i);
    }

  }

  return primes;
}

console.log(findPrimes(100));

关于javascript - 我可以让这个prime Finder 代码更简洁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60114501/

相关文章:

javascript - 如何在 JavaScript 中更改跨度内多个位置的文本(不使用 getElementbyId)?

javascript - graphQL 解析器不等待 Web API 完成

python - 求二项式系数模质数,面试街头挑战

c - 区分两个数组索引?

javascript - 与 Epson TM-T20II 的连接错误

javascript - 从云代码调用函数

Javascript 表单阻止在调用第二个函数时不起作用

python - 从 Python 中的随机数列表中过滤质数的最有效方法

java - 如何有效地找到 p 是质数的 gcd(a,b) % p?

java - 我如何将 Long 变量与 null 进行比较