0
点赞
收藏
分享

微信扫一扫

实现一个函数,获取素数(质数)


1.判断素数

function isPrinme(n){
if(n===0||n===1) return false
if(n===2) return true
for(let i = 2; i <= Math.sqrt(n); i++){
if(n % i === 0){
return false
}
}
return true
}

2.求n以内的所有素数

function getPrinmes(n){
let set = new Set()
for(let i = 2; i < n;i++){
let flag = true
for(let j = 2; j<= Math.sqrt(i);j++){
if(i%j===0){
flag = false
break;
}
}
if(flag) set.add(i)
}
return [...set]
}

3.面试题:实现一个函数,每次调用返回下一个质数,要求不使用全局变量,且函数本身不接受任何参数

function getNextPrinme(){
let i = 0;
return function(){
i++
while(!isPrinme(i)){
i++
}
return i
}
}
let getPrime = getNextPrinme()
getPrime() // 2
getPrime() // 3
getPrime() // 5



举报

相关推荐

0 条评论