Alternative method of calculating factorials.
<?php
function fact($n){
if($n > 170){return 0;} //This function can only calculate the factorial of numbers below 171
$i = $a = 1;
while ($i<=$n){
$a = $a * $i;
$i++;
}
$a = sprintf('%f', $a); //Convert from Scientific notation
return substr($a, 0, -7); //Remove the trailing decimal places
}
echo fact(171); //Returns 0
echo "<br />";
echo fact(12); //Returns 479001600
?>
gmp_fact
(PHP 4 >= 4.0.4, PHP 5)
gmp_fact — Factorial
Parameters
-
a -
The factorial number.
It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.
Return Values
A GMP number resource.
Examples
Example #1 gmp_fact() example
<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";
$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>
The above example will output:
120 30414093201713378043612608166064768844377641568960512000000000000
ghsot at ghost-tech dot com dot au ¶
2 years ago
