质数js实现
判断质数的 JavaScript 实现
质数是指大于1的自然数,除了1和它本身外没有其他约数。以下是几种常见的实现方法:
基础判断法
从2到n-1逐一判断是否能整除n:

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的范围即可:

function isPrime(n) {
if (n <= 1) return false;
const limit = Math.sqrt(n);
for (let i = 2; i <= limit; i++) {
if (n % i === 0) return false;
}
return true;
}
埃拉托斯特尼筛法
适合批量找出一定范围内的质数:
function sieveOfEratosthenes(max) {
const sieve = new Array(max + 1).fill(true);
sieve[0] = sieve[1] = false;
for (let i = 2; i <= Math.sqrt(max); i++) {
if (sieve[i]) {
for (let j = i * i; j <= max; j += i) {
sieve[j] = false;
}
}
}
return sieve.reduce((primes, isPrime, num) => {
if (isPrime) primes.push(num);
return primes;
}, []);
}
性能优化版本
跳过偶数判断(除2外):
function isPrime(n) {
if (n <= 1) return false;
if (n === 2) return true;
if (n % 2 === 0) return false;
const limit = Math.sqrt(n);
for (let i = 3; i <= limit; i += 2) {
if (n % i === 0) return false;
}
return true;
}
这些实现可根据不同场景选择使用,基础判断适合单次小数字检测,筛法适合批量查找,优化版本适合高频调用。






