我们需要编写一个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 ]