モノノフ日記

普通の日記です

[php] 素数探し

どう書く?orgのお題で素数作る必要がある問題があったので、
Wikipedia見て、エラトステネスの篩のアルゴリズムで作ってみた。
しかしループの部分の処理もっとキレイに書けないもんかな。

Server error
エラトステネスの篩 - Wikipedia

<?php
function prime($len)
{
    $result = array(2);
    for($n = 2; $n <= $len; $n++) {
        if($n % 2 == 0) {
            continue;
        }
        for($i = 3 ; pow($i, 2) <= $n ; $i += 2) {
            if($n % $i == 0)
                continue 2;
        }
        array_push($result, $n);
    }
    return $result;
}

GMP関数入れてれば、もっと簡単に書けるみたい。
秋元@サイボウズラボ・プログラマー・ブログ: 100までの素数を求めるPHPスクリプト