你好朋友,
我想创建只返回带有素数的新数组的函数。
我的函数应该只返回素数,但它不仅返回素数。
你能这么好地告诉我如何改进我的功能(或者做出核心的)?
谢谢你提前!!
function getAllPrimeNumber(array, num) {
array = new Array();
for (var i = 2; i <= num; i++) {
for(var j = 2; j < i; j++){
if(i % j==0){break; }
array.push(i);
}
}
return array;
}
console.log(getAllPrimeNumber([], 5)); //[3, 5, 5, 5]
console.log(getAllPrimeNumber([], 9)); //[3, 5, 5, 5, 7, 7, 7, 7, 7, 9]
答案 0 :(得分:0)
您需要检查i
无法完全除以2到i / 2
之间的所有数字(不包括自身)(如果数字为2),然后只推i
进入数组:
function getAllPrimeNumber(num) {
var array = [];
var isPrime;
for (var i = 2; i <= num; i++) {
for (var j = 2; (isPrime = i === j || i % j !== 0) && j <= i / 2; j++) {}
isPrime && array.push(i);
}
return array;
}
console.log(getAllPrimeNumber(5));
console.log(getAllPrimeNumber(9));