Factorial

The factorial is a function applied to whole numbers, defined as

$$n! = \prod^n_{i = 1} i = n \cdot (n - 1) \cdot \ldots \cdot 4 \cdot 3 \cdot 2 \cdot 1.$$

For example, \(6! = 6 \cdot 5 \cdot 4 \cdot 3 \cdot 2 \cdot 1 = 720\). It is equal to the number of ways \(n\) distinct objects can be arranged, because there are \(n\) ways to place the first object, \(n - 1\) ways to place the second object, and so forth. The special case \(0! = 1\) has been set by definition; there is one way to arrange zero objects.

Before the notation \(n!\) was invented, \(n\) was common.

The function can be defined recursively as \(0! = 1\) and \(n! = n \cdot (n - 1)!\). The first few values of \(n!\) for \(n = 0, 1, 2, 3, 4, \ldots\) are 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, and 39916800.

Properties
The sum of the s of the factorials is \(\sum^{\infty}_{i = 0} i! = \frac{1}{0!} + \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \cdots = 2.7182818285\ldots\), a mathematical constant better known as \(e\). In fact, \(e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots\), which illustrates the important property that \(\frac{d}{dx}e^x = e^x\).

Because \(n! = \Gamma (n + 1)\) (where \(\Gamma (x)\) is the ), \(n! = \int^{\infty}_0 e^{-t} \cdot t^{n + 1} dt\). This identity gives us factorials of positive real numbers (and negative non-integer real numbers), not limited to integers:


 * \(\left(\frac{1}{2}\right)! = \frac{\sqrt{\pi}}{2}\)
 * \(\left(-\frac{1}{2}\right)! = \sqrt{\pi}\)

In base 10, only two non-trivial numbers are equal to the sum of the factorials of their digits: \(145 = 1! + 4! + 5!\) and \(40585 = 4! + 0! + 5! + 8! + 5!\).

The number of zeroes at the end of the decimal expansion of \(n!\) is \(\sum_{k = 1} \lfloor n / 5^k\rfloor\). For example, 10000! has 2000 + 400 + 80 + 16 + 3 = 2499 zeroes. In general, the number of zeroes at the end of the base-\(b\) expansion of \(n\)! is \(\sum_{k = 1} \lfloor n / p^k\rfloor\), where \(p\) is the largest prime factor of \(b\).

Specific numbers
One hundred factorial's decimal expansion is shown below.



In scientific notation, this is approximately 9.3326215443 &times;. It seems approximately, although larger almost 100 million times.

Lawrence Hollom calls 200! faxul.

One thousand factorial is about 4.0238726007 &times;.

Variation
Aalbert Torsius defines a variation on the factorial, where \(x!n = \prod^{x}_{i = 1} i!(n - 1) = 1!(n - 1) \cdot 2!(n - 1) \cdot \ldots \cdot x!(n - 1)\) and \(x!0 = x\).

\(x!n\) is pronounced "nth level factorial of x." \(x!1\) is simply the ordinary factorial and \(x!2\) is Sloane and Plouffe's superfactorial \(x\$\).

The special case \(x!x\) is a function known as the Torian.

Pseudocode
// Standard factorial function function factorial(z): result := 1 for i from 1 to z: result := result * i return result // Generalized factorial, using Lanczos approximation for gamma function g := 7 coeffs := [0.99999999999980993, 676.5203681218851, -1259.1392167224028, 771.32342877765313, -176.61502916214059, 12.507343278686905, -0.13857109526572012, 9.9843695780195716e-6, 1.5056327351493116e-7] function factorialReal(z): ag := coeffs[0] for i from 1 to g + 1: ag := ag + coeffs[i] / (z + i) zg := z + g + 0.5 return sqrt(2 * pi) *  *   * ag // Torsius' factorial extension function factorialTorsius(z, x): if x = 0: return z if x = 1: return factorial(z) result := 1 for i from 1 to z: result := result * factorialTorsius(i, x - 1) return result