17370845950

js for循环判断质数
答案是使用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 个质数或某个区间的质数个数。