たきるブログ

C#やOracleなどの情報を書いています。

【PHP】素数かどうかを求める

以前、教えてgooだかで回答した時に作成したプログラム。
そのまま俺が作成した学習用資料となったやつ。

<?php
//1から100までの素数を取得
$prime = array();
for ($i = 1; $i < = 100; $i++) {
    if (isPrimeNumber($i)) {
        array_push($prime, $i);
    }
}

//取得した素数の出力
foreach ($prime as $value) {
    echo $value . " ";
}

function isPrimeNumber($target) {
    //マイナス符号を無視
    $target = abs($target);
    
    //1以下は素数でない
    if ($target < 2) {
        return false;
    }
    
    //対象数値の平方根までの整数で
    //割り切れる数値は素数でない
    $max = floor(sqrt($target));
    for ($i = 2; $i <= $max; $i++) {
        if ($target % $i == 0) {
            return false;
        }
    }
    
    return true;
}