JavaScript入門書のサンプルコードにて、素数のみを出力するジェネレーター関数の質問です。
isPrime関数のfor命令で、Mathオブジェクトで平方根に変換していますが、なぜこの変換が必要なのか
さっぱりわかりません。引数のvalueをそのままつかえばいいのにな、、と思いMathオブジェクトを削除
してvalueのみを記述すると何も出力されませんでした。
有識者の方、できるだけわかりやすく教えていただけると助かります。
よろしくお願い致します。
function* genPrimes() {
let num = 2; //素数の開始値
while(true) {
if(isPrime(num)) {yield num;}
num++;
}
}
function isPrime(value) {
let prime = true;
for(let i=2; i <= Math.floor(Math.sqrt(value)); i++) {
if(value % i === 0) {
prime = false;
break;
}
}
return prime;
}
for(let value of genPrimes()) {
if(value > 100) {break;}
console.log(value);
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/06 11:55
退会済みユーザー
2022/08/06 15:02
2022/08/07 03:20