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

← Problem 32  Problem 34 →
厳密にやると以下のプログラムだと違う解もでそうな気がしたけど、あってたのでよし。
<?php

// 自明のものは除外される、2桁の数なので、0は使われない。
// 10a + c / b + 10c = a / b または a + 10c / 10b + c = a / b ( a , b , c は 1 ~ 9 の整数)
// a/b は1より小さいので、a < b

$answer = 1;

for($a = 1;$a <= 9 ; $a ++)
{
	for($b = $a + 1;$b <= 9 ; $b++)
	{
		for($c = 1;$c <= 9 ; $c++)
		{
			if( ($a * 10 + $c) / ($b + $c * 10) == $a / $b ) 
			{
				$answer *= $b/$a;
			}
			if( ($a  + $c * 10) / ($b * 10 + $c ) == $a / $b )
			{
				$answer *= $b/$a;
			}
		}
	}
}
echo $answer;

?>
問題文