答案是使用for循环和Math.sqrt(n)判断质数:首先排除小于2的数,然后从2循环到√n,若存在整除则非质数,否则为质数。

在 JavaScript 中,使用 for 循环判断一个数是否为质数(素数)是一个常见的编程练习。质数是指大于 1 的自然数中,除了 1 和它本身以外没有其他因数的数。
基本思路
要判断一个数 n 是否为质数,可以尝试用 2 到 √n 之间的所有整数去除它。如果其中有任何一个数能整除 n,那 n 就不是质数。否则就是质数。使用 Math.sqrt(n) 可以减少循环次数,提高效率。
代码实现
下面是一个用 for 循环判断质数的函数:
function isPrime(n) {
if (n <= 1) return false; // 小于等于1的数不是质数
if (n === 2) return true; // 2 是质数
if (n % 2 === 0) return false; // 偶数(除了2)都不是质数
for (let i = 3; i <= Math.sqrt(n); i += 2) {
if (n % i === 0) {
return false; // 发现因数,不是质数
}
}
return true; // 没有找到因数,是质数
}
// 示例使用
console.log(isPrime(7)); // true
console.log(isPrime(10)); // false
console.log(isPrime(17)); // true
判断多个数是否为质数
如果你想用 for 循环判断一个范围内哪些数是质数,可以这样做:
for (let num = 2; num <= 30; num++) {
if (isPrime(num)) {
console.log(num + " 是质数");
}
}
这段代码会输出 2 到 30 之间的所有质数:2, 3, 5, 7, 11, 13, 17, 19, 23, 29。
注意事项
• 1 不是质数• 2 是唯一的偶数质数,单独处理可以提升效率
• 循环只需要检查到 √n,减少不必要的计算
• 使用 i += 2 跳过偶数,进一步优化性能
基本上就这些。理解了这个逻辑后,你可以轻松扩展功能,比如找出前 N 个质数或某个区间的质数个数。










