# gmp_fact

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_factFactorial

### 说明

gmp_fact ( mixed `\$a` ) : GMP

Calculates factorial (a!) of `a`.

### 参数

`a`

The factorial number.

GMP 数值资源.

### 范例

Example #1 gmp_fact() example

``` <?php\$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1echo gmp_strval(\$fact1) . "\n";\$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etcecho gmp_strval(\$fact2) . "\n";?> ```

```120
30414093201713378043612608166064768844377641568960512000000000000
```

``` I was expecting gmp_fact() is more effective than doing a while loop, but measurements show opposite:<?php\$cislo = 112;\$fact = \$cislo;\$ffact = 1;\$mt = microtime();while(\$fact >= 1){    \$ffact = \$fact * \$ffact;    \$fact--;}\$md=number_format(microtime()-\$mt, 6);echo "<h1>LOOP (\$md):</h1>";echo \$ffact;\$mt = microtime();\$vec = gmp_fact(\$cislo);\$md=number_format(microtime()-\$mt, 6);echo "<h1>GMP FACT (\$md):</h1>";echo \$vec;exit();?>WILL OUTPUT:LOOP (0.000022s):1.9745068572211E+182GMP FACT (0.000132s):1.9745068572211E+182Result is 0.000022s loop, and 0.000132s gmp_fact() ```
``` I was expecting gmp_fact() is more effective than doing a while loop, but measurements show opposite:<?php\$cislo = 112;\$fact = \$cislo;\$ffact = 1;\$mt = microtime();while(\$fact >= 1){    \$ffact = \$fact * \$ffact;    \$fact--;}\$md=number_format(microtime()-\$mt, 6);echo "<h1>LOOP (\$md):</h1>";echo \$ffact;\$mt = microtime();\$vec = gmp_fact(\$cislo);\$md=number_format(microtime()-\$mt, 6);echo "<h1>GMP FACT (\$md):</h1>";echo \$vec;exit();?>WILL OUTPUT:LOOP (0.000022s):1.9745068572211E+182GMP FACT (0.000132s):1.9745068572211E+182Result is 0.000022s loop, and 0.000132s gmp_fact() ```