📜  JS 打印所有素数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:02.219000             🧑  作者: Mango

JS 打印所有素数 - Javascript

在计算机科学中,素数(质数)是指在大于1的自然数中,除了1和该数自身以外,无法被其他自然数整除的正整数。本篇文章中,我们将介绍如何使用JavaScript打印所有素数。

算法介绍

该算法基于试除法,即从2开始到n-1逐一检查n是否能被整除。如果n不能被任何数整除,则n是素数。时间复杂度为O(n^2),不过实际运行速度远高于这个数量级。

算法实现
function isPrime(n) {
  if (n <= 1) {
    return false;
  }
  const sqrtNum = Math.sqrt(n); // 开方
  for (let i = 2; i <= sqrtNum; i++) {
    if (n % i === 0) {
      return false;
    }
  }
  return true;
}

function printPrimeNumbers(n) {
  for (let i = 2; i <= n; i++) {
    if (isPrime(i)) {
      console.log(i);
    }
  }
}

在上面的代码中,isPrime()函数判断一个数是否为素数。它从2到该数的平方根范围内逐一检查该数是否能被整除,如果能,返回false;如果不能,返回true。

printPrimeNumbers()函数遍历从2到n的所有数,并使用isPrime()函数判断每个数是否是素数。如果是,将其打印出来。

使用示例
// 打印1到100的所有素数
printPrimeNumbers(100);
结语

以上就是使用JavaScript打印所有素数的方法。虽然该算法时间复杂度较高,但是在实际应用中运行速度较快。如果您有更好的算法或者有其他相关问题,欢迎在评论区留言!