当前位置:首页 > JavaScript

js实现质数

2026-02-01 11:14:13JavaScript

判断一个数是否为质数

质数是指大于1的自然数,除了1和它本身外,没有其他正因数。以下是用JavaScript实现判断质数的方法:

function isPrime(num) {
  if (num <= 1) return false;
  if (num <= 3) return true;

  if (num % 2 === 0 || num % 3 === 0) return false;

  for (let i = 5; i * i <= num; i += 6) {
    if (num % i === 0 || num % (i + 2) === 0) return false;
  }

  return true;
}

生成指定范围内的质数列表

以下函数可以生成从2到指定上限之间的所有质数:

function generatePrimesUpTo(max) {
  const primes = [];
  for (let i = 2; i <= max; i++) {
    if (isPrime(i)) {
      primes.push(i);
    }
  }
  return primes;
}

埃拉托斯特尼筛法(高效算法)

对于较大的数字范围,可以使用更高效的筛法:

function sieveOfEratosthenes(max) {
  const sieve = new Array(max + 1).fill(true);
  sieve[0] = sieve[1] = false;

  for (let i = 2; i * i <= max; i++) {
    if (sieve[i]) {
      for (let j = i * i; j <= max; j += i) {
        sieve[j] = false;
      }
    }
  }

  return sieve.reduce((primes, isPrime, index) => {
    if (isPrime) primes.push(index);
    return primes;
  }, []);
}

获取第n个质数

如果需要获取第n个质数,可以使用以下方法:

function getNthPrime(n) {
  if (n < 1) return null;

  let count = 0;
  let candidate = 2;

  while (count < n) {
    if (isPrime(candidate)) {
      count++;
      if (count === n) return candidate;
    }
    candidate++;
  }

  return null;
}

性能优化提示

对于非常大的数字,可以考虑以下优化:

js实现质数

  • 预计算并缓存已知质数
  • 使用概率性测试算法(如Miller-Rabin测试)处理极大数字
  • 避免不必要的计算,如偶数可以直接排除(除了2)

这些方法可以根据具体需求组合使用,例如先用简单方法处理小数字,对大数字使用更复杂的算法。

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

相关文章

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…