# Generator 求下一个质数

# 判断质数的方法

如果2到Math.sqrt(num)没有能整除的除数的话,就是质数(素数)。注意是[2,Math.sqrt(num)],前闭后闭。

function isPrime(num){
    for(let i = 2; i <= Math.sqrt(num); i++){
        if(num % i === 0){
            return false;
        }
    }
    return true;
}

# 答案

function isPrime(num){
    for(let i = 2; i <= Math.sqrt(num); i++){
        if(num % i === 0){
            return false;
        }
    }
    return true;
}

/*主方法*/
function* genaratorN(){
    let tempN = 1;
    while(true){
        tempN++;
        if(isPrime(tempN)){
            yield tempN;
        }
    }
}

let f = genaratorN();
console.log(
    f.next().value, // 2
    f.next().value, // 3
    f.next().value, // 5
    f.next().value // 7
) 

f.next()是{ value: 3, done: false }`形式的遍历器项。

作者:王龙楷; 标签:原创; 提交时间: 1/14/2021, 4:22:34 PM