Beispiel #1 Fakultätsfunktion unter Verwendung von GMP
<?php
function fact($x)
{
$return = 1;
for ($i=2; $i < $x; $i++) {
$return = gmp_mul($return, $i);
}
return $return;
}
echo gmp_strval(fact(1000)) . "\n";
?>
Dies berechnet die Fakultät von 1000 sehr schnell (eine wirklich große Zahl).
I believe that "fact" computes the factorial of $x-1 not of $x. The for statement should be
for ($i=2; $i <= $x; $i++)
not
for ($i=2; $i < $x; $i++)
If you try to compute the factorial of 2 for example, the for loop will not be executed and the result will be 1.