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

← Problem 4  Problem 6 →
必要な数字は2^4 の16 と、3^2 の9、あとは、5,7,11,13,17,19 で、
これを掛けていけば解ける。他の数字はこれらの数字の組み合わせ。
<?php

// 1から20 までを分解する
// 1から20 までの素数は手で求めておく

$prime = array(2=>0,3=>0,5=>0,7=>0,11=>0,13=>0,17=>0,19=>0);
$answer = 1;

for($i = 2 ; $i <= 20 ; $i++)
{
	$num = $i;
	foreach($prime as $key => $value)
	{
		$count = 0;
		while($num % $key == 0) 
		{
			$num = $num / $key;
			$count++;
		}
		if($prime[$key] < $count)
		{
			$prime[$key] = $count;
		}
		if($num == 1)
		{
			break;
		}
	}
}

foreach($prime as $key => $value)
{
	$answer *= pow($key , $value);
}


echo $answer;
?>
問題文