<?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; } } ?>