Project Euler にチャレンジ:Problem 7 PHPでの解答

← Problem 6  Problem 8 →
素数か否かを調べるのが遅いけど、とりあえずこれでよし。
<?php

// 問題文に6個素数がリストアップされているので、
// あらかじめ6個素数を書いておく。
// 2を除き、それ以外の素数は全て奇数なので、奇数だけ調べる。
$count = 6;

// 調査対象は奇数だけなので、2は除外しておく。
$prime = array(3,5,7,11,13);

// 調査対象は13 の次の奇数から
$num = 13;

// 10001 番目の素数を見つける
while($count < 10001)
{
	$num += 2;
	$flag = true;
	foreach($prime as $v)
	{
		if($num % $v == 0)
		{
			$flag = false;
			break;
		}
	}
	if($flag)
	{
		$prime[] = $num;
		$count++;
	}
}

echo $num;

?>
問題文