当前位置:首页 > JavaScript

质数js实现

2026-02-01 16:52:06JavaScript

质数判断的 JavaScript 实现

质数是指大于1的自然数,且只能被1和它本身整除的数。以下是几种常见的质数判断方法及对应的 JavaScript 实现。

基础判断方法

通过遍历2到n-1之间的所有数,判断是否能整除n。

质数js实现

function isPrime(n) {
  if (n <= 1) return false;
  for (let i = 2; i < n; i++) {
    if (n % i === 0) return false;
  }
  return true;
}

优化方法:减少遍历范围

只需遍历2到√n之间的数,因为如果n有大于√n的因数,必然对应一个小于√n的因数。

质数js实现

function isPrimeOptimized(n) {
  if (n <= 1) return false;
  for (let i = 2; i <= Math.sqrt(n); i++) {
    if (n % i === 0) return false;
  }
  return true;
}

进一步优化:跳过偶数

除2外,所有偶数都不是质数,可以跳过偶数判断。

function isPrimeFurtherOptimized(n) {
  if (n <= 1) return false;
  if (n === 2) return true;
  if (n % 2 === 0) return false;
  for (let i = 3; i <= Math.sqrt(n); i += 2) {
    if (n % i === 0) return false;
  }
  return true;
}

生成质数列表

生成从2到n的所有质数列表,可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)。

function sieveOfEratosthenes(n) {
  const primes = new Array(n + 1).fill(true);
  primes[0] = primes[1] = false;
  for (let i = 2; i <= Math.sqrt(n); i++) {
    if (primes[i]) {
      for (let j = i * i; j <= n; j += i) {
        primes[j] = false;
      }
    }
  }
  return primes
    .map((isPrime, index) => (isPrime ? index : null))
    .filter((num) => num !== null);
}

实际应用示例

console.log(isPrime(7)); // true
console.log(isPrimeOptimized(9)); // false
console.log(isPrimeFurtherOptimized(2)); // true
console.log(sieveOfEratosthenes(20)); // [2, 3, 5, 7, 11, 13, 17, 19]

这些方法可以根据实际需求选择使用,基础方法适用于简单场景,优化方法更适合性能敏感的应用。

标签: 质数js
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML…