エラトステネスの篩

エラトステネスの篩:

素数を求めるアルゴリズム「エラトステネスの篩」をJavaScriptで書いてみたので投稿してみる。

function GetPrimeNumbers (m) { 
    //配列をつくって 0 と 1 にはあらかじめ null としておく。 
    var t = (new Array(m)).fill(0).map((v, i) => i); 
    t[0] = null; 
    t[1] = null; 
 
    //エラトステネスの篩 で素数の添字に null セット 
    for (var i = 2; (i * i) < m; i++) { 
        var p = i << 1; 
        while (p < m) { 
            t[p] = null; 
            p += i; 
        } 
    } 
 
    //nullを配列から除去して返す 
    return t.filter(v => v); 
} 
 
//100までの素数を出力 
console.log( GetPrimeNumbers (100) ); 
// [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 
以上!

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)