我们需要编写一个JavaScript函数,该函数接受数字n,并返回包含前n个质数的数组。我们知道素数是只能被1整除的数,例如2、3、19、37、73等。
我们将首先编写一个检查给定数是否为质数的函数,然后运行循环以生成n个质数。检查素数的代码-
const isPrime = (n) => {
for(let i = 2; i <= n/2; i++){
if(n % i === 0){
return false;
}
};
return true;
};
完整的生成代码将是-
const isPrime = (n) => {
for(let i = 2; i <= n/2; i++){
if(n % i === 0){
return false;
}
};
return true;
};
const generatePrime = num => {
const arr = [];
let i = 2;
while(arr.length < num){
if(isPrime(i)){
arr.push(i);
};
i = i === 2 ? i+1 : i+2;
};
return arr;
};
console.log(generatePrime(6));
console.log(generatePrime(16));
console.log(generatePrime(36));
输出结果
控制台中的输出将为-
[ 2, 3, 5, 7, 11, 13 ]
[
2, 3, 5, 7, 11, 13,
17, 19, 23, 29, 31, 37,
41, 43, 47, 53
]
[
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, 101, 103,
107, 109, 113, 127, 131, 137, 139, 149, 151
]