素数を求める (ver.5)

明解C言語 入門編 > 5. 配列 >

素数を求める (ver.5)

PHP
<?php
$prime   = array();
$ptr     = 0;
$counter = 0;

$prime[$ptr++] = 2;
$prime[$ptr++] = 3;

$no = 5;
while ($no <= 30)
{
    $j = 0;
    for ($i = 1; $counter++, $prime[$i] * $prime[$i] <= $no; $i++)
    {
        $counter++;
        if ($no % $prime[$i] == 0)
        {
            $j = 1;
            break; # 割り切れるので、素数ではない
        }
    }
    if (!$j) $prime[$ptr++] = $no ; # 最後まで割り切れなかったので、素数

    $no += 2;
}

foreach ($prime as $p)
{
    print "$p\n";
}    

print "計算を行った回数:$counter\n";
?>

実行結果

L:\>php lesson_05_042.php
2
3
5
7
11
13
17
19
23
29
計算を行った回数:34