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

← Problem 47  Problem 49 →
<?php

$answer = 0;
$pow10 = pow(10,10);

for($i = 1; $i <= 1000 ; $i++)
{
	$answer += self_powers($i,$i,$i);
	while($answer > $pow10)
	{
		$answer -= $pow10;
	}
}
echo $answer;

function self_powers($num1,$num2,$num3)
{
	global $pow10;
	if($num1 > $pow10)
	{
		$num1 %= $pow10;
	}
	
	if($num3 > 1)
	{
		return self_powers($num1 * $num2,$num2,$num3 - 1);
	}
	else
	{
		return $num1;
	}
}

?>
問題文