var
x, //定义一个变量x
r,
arr = []; //定义一个空数组
for (x = 1; x < 100; x++) {
arr.push(x); //把1-100依次放到数组arr中
}
function get_primes(arr) {
return arr.filter(function(val){ //用js的高阶函数filter把数组中不是素数的过滤掉
for(let i=2;i<val;i++){
if(val%i===0){
return false; //除了1和本身还有其他因素的,则返回false
}
}
return val>1; //素数是正整数,而且1不是素数。
})
}
r = get_primes(arr);
方法二:
var
x, //定义一个变量x
r,
arr = []; //定义一个空数组
for (x = 1; x < 100; x++) {
arr.push(x); //把1-100依次放到数组arr中
}
function get_primes(arr) {
return arr.filter((n)=>{
if(n<3){
return n > 1;
}
for(let i = 2;i<=Math.sqrt(n);i++){
if(n % i === 0){
return false;
}
}
return true;
});
}
r = get_primes(arr);
方法三:
var
x, //定义一个变量x
r,
arr = []; //定义一个空数组
for (x = 1; x < 100; x++) {
arr.push(x); //把1-100依次放到数组arr中
}
function get_primes(arr) {
return arr.filter(
x => {
let result = true;
let end = Math.sqrt(x);
let flag = 0;
for (let i = 2; i <= end; i++) {
if (x % i == 0) {
flag = 1;
break;
}
}
if (x == 1) {
//单独判断1是不是素数
result = false;
} else if (flag == 0) {
//素数
result = true;
} else {
//合数
result = false;
}
return result;
}
);
}
r = get_primes(arr);
还有其他很多种办法可以实现去判断一个数组里的哪些元素是素数,大家也可以贴出自己的方法,来一起交流,一起进步,如有不对的地方,欢迎指教。