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

← Problem 38  Problem 40 →
原始ピタゴラス数の作り方を知っていれば結構簡単。
<?php

$array = array();

for($m = 2; $m <= 22 ; $m++)
{
	for($n = 1 ; $n < $m ; $n++)
	{
		if(($m - $n) % 2 == 1)
		{
			$tmp1 = $m;
			$tmp2 = $n;
			$tmp3 = 0;
			while($tmp1 % $tmp2 != 0)
			{
				$tmp3 = $tmp1;
				$tmp1 = $tmp2;
				$tmp2 = $tmp3 % $tmp2;
			}
			if($tmp2 == 1)
			{
				// 原始ピタゴラス数リストができる。
				$tmp4 = 2 * $m * ($m + $n);
				
				for($i = 1; $i * $tmp4 <= 1000 ; $i++)
				{
					@$array[$i * $tmp4]++;
				}
			}
		}
	}
}

$keys = array_keys($array,max($array));
echo $keys[0];


?>
問題文