n  n! 

0  1 
1  1 
2  2 
3  6 
4  24 
5  120 
6  720 
7  5,040 
8  40,320 
9  362,880 
10  3,628,800 
11  39,916,800 
12  479,001,600 
13  6,227,020,800 
14  87,178,291,200 
15  1,307,674,368,000 
20  2,432,902,008,176,640,000 
25  15,511,210,043,330,985,984,000,000 
50  3.04140932... × 10^{64} 
70  1.19785717... × 10^{100} 
450  1.73336873... × 10^{1,000} 
1754  1.979262... × 10^{4,930} 
3,249  6.41233768... × 10^{10,000} 
25,206  1.205703438... × 10^{100,000} 
47,176  8.4485731495... × 10^{200,001} 
100,000  2.8242294079... × 10^{456,573} 
1,000,000  8.2639316883... × 10^{5,565,708} 
10^{305}  10^{3.045657055180967... × 10}307 
In mathematics, the factorial of a positive integer n,^{[1]} denoted by n!, is the product of all positive integers less than or equal to n. For example,
0! is a special case that is explicitly defined to be 1.^{[1]}
The factorial operation is encountered in many different areas of mathematics, notably in combinatorics, algebra and mathematical analysis. Its most basic occurrence is the fact that there are n! ways to arrange n distinct objects into a sequence (i.e., permutations of a the set of objects). This fact was known at least as early as the 12th century, to Hindu scholars.^{[2]} The notation n! was introduced by Christian Kramp in 1808.
The definition of the factorial function can also be extended to noninteger arguments, while retaining its most important properties; this involves more advanced mathematics, notably techniques from mathematical analysis.
Contents 
The factorial function is formally defined by
or recursively defined by
Both of the above definitions incorporate the instance
in the first case by the convention that the product of no numbers at all is 1. This is useful because:
The factorial function can also be defined for noninteger values using more advanced mathematics, detailed in the section below. This more generalized definition is used by advanced calculators and mathematical software such as Maple.
Although the factorial function has its roots in combinatorics, formulas involving factorials occur in many areas of mathematics.
Factorials have many applications in number theory. In particular, n! is necessarily divisible by all prime numbers up to and including n. As a consequence, n > 5 is a composite number if and only if
A stronger result is Wilson's theorem, which states that
if and only if p is prime.
AdrienMarie Legendre found that the multiplicity of the prime p occurring in the prime factorization of n! can be expressed exactly as
This fact is based on counting the number of factors p of the integers from 1 to n. The number of multiples of p in the numbers 1 to n are given by ; however, this formula counts those numbers with two factors of p only once. Hence another factors of p must be counted too. Similarly for three, four, five factors, to infinity. The sum is finite since p^{ i} is less than or equal to n for only finitely many values of i, and the floor function results in 0 when applied to p^{ i} > n.
The only factorial that is also a prime number is 2, but there are many primes of the form n! ± 1, called factorial primes.
All factorials greater than 0! and 1! are even, as they are all multiples of 2.
As n grows, the factorial n! becomes larger than all polynomials and exponential functions (but slower than double exponential functions) in n.
Most approximations for n! are based on approximating its natural logarithm
The graph of the function f(n)=log n! is shown in the figure on the right. It looks approximately linear for all reasonable values of n, but this intuition is false. We get one of the simplest approximations for log n! by bounding the sum with an integral from above and below as follows:
which gives us the estimate
Hence log n! is Θ(n log n). This result plays a key role in the analysis of the computational complexity of sorting algorithms (see comparison sort).
From the bounds on log n! deduced above we get that
For large n we get a better estimate for the number n! using Stirling's approximation:
In fact, it can be proved that for all n we have
A much better approximation for log n! was given by Srinivasa Ramanujan (Ramanujan 1988)
Computing factorials is trivial from an algorithmic point of view: successively multiplying a variable initialized to 1 by the integers 2 up to n (if any) will compute n!, provided the result fits in the variable. Interestingly, the factorial is often used as an example to illustrate recursive functions, while it is not intrinsically any more or less recursive (from a mathematical or computational point of view) than for instance a function computing the sum of the first n terms of a given sequence of numbers.
The main difficulty in computing factorials is the size of the result. To assure that the result will fit for all legal values of even the smallest commonly used integral type (8bit signed integers) would require more than 700 bits, so no reasonable specification of a factorial function using fixedsize types can avoid questions of overflow. The values 12! and 20! are the largest factorials that can be stored in, respectively, the 32 bit and 64 bit integers commonly used in personal computers. Although floating point representation of the result allows going a bit further, it remains quite limited by possible overflow. The largest factorial that most calculators can handle is 69!, because 69! < 10^{100} < 70!. Calculators that use 3digit exponents can compute larger factorials, up to, for example, 253! ≈ 5.2×10^{499} on HP calculators and 449! ≈ 3.9×10^{997} on the TI86. The calculator seen in Mac OS X, Microsoft Excel and Google Calculator can handle factorials up to 170!, which is the largest factorial that can be represented as a 64bit IEEE 754 floatingpoint value. The scientific calculator in Windows XP is able to calculate factorials up to at least 100000!. Most software applications will compute small factorials by direct multiplication or table lookup. Larger factorial values can be approximated using Stirling's formula.
Wolfram Alpha can calculate exact results for the ceiling function and floor function applied to the binary, natural and common logarithm of n! for values of n up to 249999, and up to 20,000,000! for the Integers.
If very large exact factorials are needed, they can be computed using bignum arithmetic. In such computations speed may be gained^{[citation needed]} by not sequentially multiplying the numbers up to (or down from) n into a single accumulator, but by partitioning the sequence so that the products for each of the two parts are approximately of the same size, compute those products recursively and then multiply.
The asymptoticallybest efficiency is obtained by computing n! from its prime factorization. As documented by Peter Borwein, prime factorization allows n! to be computed in time O(n(log n log log n)^{2}), provided that a fast multiplication algorithm is used (for example, the Schönhage–Strassen algorithm).^{[3]} Peter Luschny presents source code and benchmarks for several efficient factorial algorithms, with or without the use of a prime sieve.^{[4]}
Besides nonnegative integers, the factorial function can also be defined for noninteger values, but this requires more advanced tools from mathematical analysis. One function that "fills in" the values of the factorial (but with a shift of 1 in the argument) is called the Gamma function, denoted Γ(z), defined for all complex numbers z except the nonpositive integers, and given when the real part of z is positive by
Its relation to the factorials is that for any natural number n
Euler's original formula for the Gamma function was
It is worth mentioning that there is an alternative notation which was originally introduced by Gauss and which is sometimes used is the Pi function, denoted Π(z) for real numbers z no less than 0, defined by
which in terms of the Gamma function is
so that it truly extends the factorial:
In addition to this, the Pi function satisfies the same recurrence as factorials do, but at every complex value z where it is defined
(in fact this is no longer a recurrence relation but a functional equation). Expressed in terms of the Gamma function this functional equation takes the form
Since the factorial is extended by the Pi function, for every complex value z where it is defined, we can write:
The values of these functions at halfinteger values is therefore determined by a single one of them; one has
from which it follows that for n ∈ N,
For example
The Pi function is certainly not the only way to extend factorials to a function defined at almost all complex values, and not even the only one that is analytic wherever it is defined. Nonetheless it is usually considered the most natural way to extend the values of the factorials to a complex function. For instance, the Bohr–Mollerup theorem states that the Gamma function is the only function that takes the value 1 at 1, satisfies the functional equation Γ(n + 1) = nΓ(n), is meromorphic on the complex numbers, and is logconvex on the positive real axis. A similar statement holds for the Pi function as well, using the Π(n) = nΠ(n − 1) functional equation.
There exist however complex functions which are provably simpler in the sense of analytic function theory, and which interpolate the factorial values, for example Hadamard's 'Gamma'function (Hadamard 1894) which, unlike the Gamma function, is an entire function.^{[5]}
Euler also developed a convergent product approximation for the noninteger factorials, which can be seen to be equivalent to the formula for the Gamma function above:
It can also be written as
This formula does not however provide a very practical means of computing the Pi or Gamma function, as its rate of convergence is very slow.
The volume of an ndimensional hypersphere of radius R is
Representation through the Gammafunction allows evaluation of factorial of complex argument. Equilines of amplitude and phase of factorial are shown in figure. Let . Several levels of constant modulus (amplitude) ρ = const and constant phase are shown. The grid covers range , with unit step. The scratched line shows the level .
Thin lines show intermediate levels of constant modulus and constant phase. At poles , phase and amplitude are not defined. Equilines are dense in vicinity of singularities along negative integer values of the argument.
For moderate values of  z  < 1, the Taylor expansions can be used:
The first coefficients of this expansion are
n  g_{n}  approximation 

0  1  1 
1  − γ  − 0.5772156649 
2  0.9890559955  
3  − 0.9074790760 
where γ is the Euler constant and ζ is the Riemann zeta function. Computer algebra systems such as Sage (mathematics software) can generate many terms of this expansion.
For the large values of the argument, factorial can be approximated through the integral of the psi function, using the continued fraction representation ^{[6]}.
The first coefficients in this continued fraction are
There is common misconception, that log(z!) = P(z) or for any complex z ≠ 0. Indeed, the relation through the logarithm is valid only for specific range of values of z in vicinity of the real axis, while . The larger is the real part of the argument, the smaller should be the imaginary part. However, the inverse relation, z! = exp(P(z)), is valid for the whole complex plane, the only, z in the continued fraction should not be zero, and the convergence is poor in vicinity of the negative part of the real axis. (It is difficult to have good convergence of any approximation in vicinity of the singularities). While or , the 8 coefficients above are sufficient for the evaluation of the factorial with the complex<double> precision.
The relation n ! = (n − 1)! × n allows one to compute the factorial for an integer given the factorial for a smaller integer. The relation can be inverted so that one can compute the factorial for an integer given the factorial for a larger integer:
Note, however, that this recursion does not permit us to compute the factorial of a negative integer; use of the formula to compute (−1)! would require a division by zero, and thus blocks us from computing a factorial value for every negative integer. (Similarly, the Gamma function is not defined for nonpositive integers, though it is defined for all other negative numbers.)
In particular, factorials for the negative integers are not based on multiplying integers that are sequentially closer to zero. That is,
There are several other integer sequences similar to the factorial that are used in mathematics:
The primorial (sequence A002110 in OEIS) is similar to the factorial, but with the product taken only over the prime numbers.
A function related to the factorial is the product of all odd values up to some odd positive integer n. It is often called double factorial (even though it only involves about half the factors of the ordinary factorial, and its value therefore closer to the square root of the factorial), and denoted by n!!, which value is defined by
For example, 9!! = 1 × 3 × 5 × 7 × 9 = 945. This notation creates a notational ambiguity with the composition of the factorial function with itself (which for n > 2 gives much larger numbers than the double factorial); this may be justified by the fact that that composition arises very seldom in practice, and could be denoted by (n!)! to circumvent the ambiguity. The double factorial notation is not essential; it can be expressed in terms of the ordinary factorial by
since the denominator equals and cancels the unwanted even factors from the numerator. The introduction of the double factorial is motivated by the fact that it occurs rather frequently in combinatorial and other settings, for instance
Sometimes n!! is defined for nonnegative even numbers as well. One choice is a definition similar to the one for odd values
For example, with this definition, 8!! = 2 × 4 × 6 × 8 = 384. However, note that this definition does not match the expression above, of the double factorial in terms of the ordinary factorial, and is also inconsistent with the extension of the definition of n!! to complex numbers n that is achieved via the Gamma function as indicated below. Also, for even numbers, the double factorial notation is hardly shorter than expressing the same value using ordinary factorials. For combinatorial interpretations (the value gives, for instance, the size of the hyperoctahedral group), the latter expression can be more informative (because the factor 2^{n} is the order of the kernel of a projection to the symmetric group). Even though the formulas for the odd and even double factorials can be easily combined into
the only known interpretation for the sequence of all these numbers (sequence A006882 in OEIS) is somewhat artificial: the number of downup permutations of a set of n + 1 elements for which the entries in the even positions are increasing.
The sequence of double factorials for n = 1, 3, 5, 7, ... (sequence A001147 in OEIS) starts as
Some identities involving double factorials are:
Disregarding the above definition of n!! for even values of n, the double factorial for odd integers can be extended to most real and complex numbers z by noting that when z is a positive odd integer then
The expressions obtained by taking one of the above formulas for (2n + 1)!! and (2n − 1)!! and expressing the occurring factorials in terms of the gamma function can both be seen (using the multiplication theorem) to be equivalent to the one given here.
The expression found for z!! is defined for all complex numbers except the negative even numbers. Using it as the definition, the volume of an ndimensional hypersphere of radius R can be expressed as
A common related notation is to use multiple exclamation points to denote a multifactorial, the product of integers in steps of two (n!!), three (n!!!), or more. The double factorial is the most commonly used variant, but one can similarly define the triple factorial (n!!!) and so on. One can define the k^{th} factorial, denoted by n!^{(k)}, recursively for nonnegative integers as
though see the alternative definition below.
Some mathematicians have suggested an alternative notation of n!_{2} for the double factorial and similarly n!_{k} for other multifactorials, but this has not come into general use.
With the above definition, (kn)!^{(k)} = k^{n}n!.
In the same way that n! is not defined for negative integers, and n!! is not defined for negative even integers, n!^{(k)} is not defined for negative integers evenly divisible by k.
Alternatively, the multifactorial z!^{(k)} can be extended to most real and complex numbers z by noting that when z is one more than a positive multiple of k then
This last expression is defined much more broadly than the original; with this definition, z!^{(k)} is defined for all complex numbers except the negative real numbers evenly divisible by k. This definition is consistent with the earlier definition only for those integers z satisfying z ≡ 1 mod k.
In addition to extending z!^{(k)} to most complex numbers z, this definition has the feature of working for all positive real values of k. Furthermore, when k = 1, this definition is mathematically equivalent to the Π(z) function, described above. Also, when k = 2, this definition is mathematically equivalent to the alternate extension of the double factorial, described above.
The socalled quadruple factorial, however, is not the multifactorial n!^{(4)}; it is a much larger number given by (2n)!/n!, starting as
It is also equal to
Neil Sloane and Simon Plouffe defined the superfactorial in 1995 as the product of the first n factorials. So the superfactorial of 4 is
In general
The sequence of superfactorials starts (from n = 0) as
Clifford Pickover in his 1995 book Keys to Infinity used a new notation, n$, to define the superfactorial
or as,
where the ^{(4)} notation denotes the hyper4 operator, or using Knuth's uparrow notation,
This sequence of superfactorials starts:
Here, as is usual for compound exponentiation, the grouping is understood to be from right to left:
Occasionally the hyperfactorial of n is considered. It is written as H(n) and defined by
For n = 1, 2, 3, 4, ... the values H(n) are 1, 4, 108, 27648,... (sequence A002109 in OEIS).
The asymptotic growth rate is
where A = 1.2824... is the Glaisher–Kinkelin constant.^{[7]} H(14) = 1.8474...×10^{99} is already almost equal to a googol, and H(15) = 8.0896...×10^{116} is almost of the same magnitude as the Shannon number, the theoretical number of possible chess games.
The hyperfactorial function can be generalized to complex numbers in a similar way as the factorial function. The resulting function is called the Kfunction.
N Factorial (written N!) is a function to calculate the product of every number from 1 to N. If N is 0, the result is 1. N! is not defined for negative numbers.
It is used to find out how many possibilities there are to arrange objects.
For example, if there are 3 letters (A, B, and C), they can be arranged as ABC, ACB, BAC, BCA, CAB, and CBA. That's 6 choices because A can be put in 3 different places, B has 2 choices left after A is placed, and C has only one choice left after A and B have been placed. That is 3×2×1 = 6 combinations.
More generally, if there are three objects, and we want to find out how many different ways there are to arrange (or select them), than for the first object, there are 3 choices. For the second object, there are only two choices left as the first object has already been chosen. And finally, for the third object, there is only one object left.
Therefore 3! is equivalent to 3×2×1, or 6.
This function is a good example of recursion (doing things again and again), as 3! can be written as 3×(2!), which can be written as 3×2×(1!) and finally 3×2×1×(0!). N! can therefore also be defined as N×(N1)! with 0! = 1.
The factorial function grows very fast. There are over 3.5 million ways to arrange 10 items.
