
在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);
这个程序由两个主要部分组成:
-
isPrime函数:用于判断一个数是否为质数。它首先排除小于或等于1的数(这些数不是质数),然后直接返回2和3是质数。接下来,它排除能被2或3整除的数,因为这些数显然不是质数。最后,它使用一个循环来检查从5开始到sqrt(num)的所有数(每次增量为6),以确保所有可能的因子都被检查到。
-
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