100以内的质数 js怎么写

100以内的质数 js怎么写

在JavaScript中,编写一个程序来输出100以内的质数是一个经典的编程练习。质数是指大于1的自然数,除了1和其本身外,不能被其他自然数整除。下面是一个简单的JavaScript程序,用于找出100以内的所有质数:

function isPrime(num) {

if (num <= 1) return false; // 1及以下的数不是质数

if (num <= 3) return true; // 2和3是质数

// 排除能被2或3整除的数

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

// 仅检查到sqrt(num)的数

for (let i = 5; i * i <= num; i += 6) {

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

}

return true;

}

function printPrimes(limit) {

let primes = [];

for (let i = 2; i < limit; i++) {

if (isPrime(i)) {

primes.push(i);

}

}

return primes;

}

const primesUpTo100 = printPrimes(100);

console.log(primesUpTo100);

这个程序由两个主要部分组成:

  1. isPrime函数:用于判断一个数是否为质数。它首先排除小于或等于1的数(这些数不是质数),然后直接返回2和3是质数。接下来,它排除能被2或3整除的数,因为这些数显然不是质数。最后,它使用一个循环来检查从5开始到sqrt(num)的所有数(每次增量为6),以确保所有可能的因子都被检查到。

  2. printPrimes函数:用于输出指定范围内的所有质数。它从2开始遍历到指定的上限(在这个例子中是100),并使用isPrime函数检查每个数是否为质数。如果是质数,就将其添加到结果数组中。

最后,程序调用printPrimes函数并输出结果,这将打印出100以内的所有质数。

相关问答FAQs:

Q: 如何使用JavaScript编写一个判断数字是否为100以内的质数的函数?

A: 以下是一个简单的JavaScript函数,用于判断一个数字是否为100以内的质数:

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

console.log(isPrime(37)); // 输出 true
console.log(isPrime(100)); // 输出 false

Q: 如何使用JavaScript找出100以内的所有质数?

A: 以下是一个使用JavaScript编写的函数,用于找出100以内的所有质数:

function findPrimes() {
  let primes = [];
  
  for (let num = 2; num <= 100; num++) {
    let isPrime = true;
    
    for (let i = 2; i <= Math.sqrt(num); i++) {
      if (num % i === 0) {
        isPrime = false;
        break;
      }
    }
    
    if (isPrime) {
      primes.push(num);
    }
  }
  
  return primes;
}

console.log(findPrimes()); // 输出 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

Q: 如何使用JavaScript计算100以内的质数之和?

A: 以下是一个使用JavaScript编写的函数,用于计算100以内的质数之和:

function sumPrimes() {
  let sum = 0;
  
  for (let num = 2; num <= 100; num++) {
    let isPrime = true;
    
    for (let i = 2; i <= Math.sqrt(num); i++) {
      if (num % i === 0) {
        isPrime = false;
        break;
      }
    }
    
    if (isPrime) {
      sum += num;
    }
  }
  
  return sum;
}

console.log(sumPrimes()); // 输出 1060

文章包含AI辅助创作,作者:Edit1,如若转载,请注明出处:https://docs.pingcode.com/baike/3619304

(0)
Edit1Edit1
免费注册
电话联系

4008001024

微信咨询
微信咨询
返回顶部