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

← Problem 11  Problem 13 →
約数は平方根の時を除き、一つ見つかればもう一対見つかることを考慮すると、 少し解く計算時間が短くなった。
<?php

// 1 を除き、必ず約数は2つ以上ある
$answer = 0;
$i = 1;
while(true)
{
	$count = 2;
	$answer += $i;
	$sqrt = sqrt($answer);
	for($j = 2 ; $j <= $sqrt ;$j++)
	{
		if($answer % $j ==0)
		{
			if($j == $sqrt)
			{
				$count++;
			}
			else
			{
				$count += 2;
			}
		}
	}
	if($count >= 500)
	{
		break;
	}
	$i++;
}

echo $answer;

?>
問題文