0
0
0
1
—
118
—
0
0
0
1
—
118
—
The Factorial Calculator computes $$n!$$ (n factorial), one of the most important functions in all of mathematics. The factorial of a non-negative integer $$n$$ is the product of all positive integers up to $$n$$:
$$n! = n \times (n-1) \times (n-2) \times \cdots \times 2 \times 1$$
By convention, $$0! = 1$$ (the empty product). Factorials grow extraordinarily fast — $$20! = 2,432,902,008,176,640,000$$ already has 19 digits. This explosive growth rate is why factorials appear in asymptotic analysis and why even modest inputs produce astronomically large results.
Factorials are the backbone of combinatorics, where they count the number of ways to arrange $$n$$ distinct objects (permutations). The binomial coefficient $$\binom{n}{k} = \frac{n!}{k!(n-k)!}$$ counts combinations and drives the Binomial Theorem, Pascal's Triangle, and probability distributions. In calculus, factorials appear in Taylor series expansions: $$e^x = \sum_{k=0}^{\infty} \frac{x^k}{k!}$$. The function generalizes to non-integers via the Gamma function: $$\Gamma(n+1) = n!$$
For large $$n$$, the calculator also shows Stirling's approximation, which estimates $$n!$$ using continuous functions:
$$n! \approx \sqrt{2\pi n} \left(\frac{n}{e}\right)^n$$
For values $$n = 0$$ through $$n = 20$$, the calculator uses exact hardcoded values, ensuring perfect precision within JavaScript's safe integer range. For $$n \leq 1$$, the result is 1 by definition.
Stirling's Approximation is computed as:
$$n! \approx \exp\left(n \ln n - n + \frac{1}{2} \ln(2\pi n)\right)$$
This log-space formulation avoids overflow issues. The approximation error decreases as $$n$$ grows: about 8.3% for $$n = 2$$, 1.7% for $$n = 5$$, and under 0.1% for $$n = 20$$.
The number of digits in $$n!$$ is calculated as $$\lfloor \log_{10}(n!) \rfloor + 1$$. The reciprocal $$1/n!$$ converges rapidly to zero and is important in series expansions like $$e = \sum 1/k!$$.
The factorial result $$n!$$ tells you how many distinct arrangements of $$n$$ items exist. A 5-letter word has $$5! = 120$$ possible anagrams. The Stirling error shows how well the continuous approximation matches the discrete factorial — for $$n \geq 10$$, Stirling is typically within 1%. The digit count reveals the sheer scale: $$20!$$ has 19 digits, and $$100!$$ (computed via extended precision) has 158 digits.
Inputs
Results
5! = 120. There are 120 ways to arrange 5 distinct objects. Stirling gives 118, about 1.7% error.
Inputs
Results
10! = 3,628,800 — a 7-digit number. 10 contestants can be ranked in over 3.6 million ways.
By convention, $$0! = 1$$ because there is exactly one way to arrange zero objects (do nothing). Mathematically, this preserves the recurrence $$n! = n \times (n-1)!$$: setting $$1! = 1 \times 0!$$ requires $$0! = 1$$. It also ensures the binomial coefficient $$\binom{n}{0} = \frac{n!}{0! \cdot n!} = 1$$ works correctly.
Each step multiplies by a number one larger than the previous. Stirling's formula shows the growth rate as roughly $$n^n e^{-n}$$, which is super-exponential. For comparison, $$2^{10} = 1024$$ but $$10! = 3,628,800$$. By $$n = 20$$, the factorial has 19 digits — far exceeding any exponential function $$a^n$$ for fixed $$a$$.
Stirling's formula $$n! \approx \sqrt{2\pi n}(n/e)^n$$ approximates factorials using elementary functions. It is invaluable in statistical mechanics (partition functions), information theory (entropy calculations), and asymptotic analysis where exact factorials are unwieldy. The relative error is approximately $$1/(12n)$$.
The Gamma function $$\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt$$ extends the factorial to all complex numbers (except negative integers). For positive integers, $$\Gamma(n+1) = n!$$. This enables concepts like $$0.5! = \Gamma(1.5) = \frac{\sqrt{\pi}}{2} \approx 0.886$$.
Factorials underpin the binomial distribution $$P(k) = \binom{n}{k}p^k(1-p)^{n-k}$$, the Poisson distribution $$P(k) = \frac{\lambda^k e^{-\lambda}}{k!}$$, and permutation counting. Any probability problem asking "in how many ways" ultimately involves factorials.
JavaScript uses 64-bit floating point, which can represent integers exactly up to $$2^{53} - 1 \approx 9 \times 10^{15}$$. Since $$18! = 6.4 \times 10^{15}$$ fits but $$19! = 1.2 \times 10^{17}$$ does not, values above 18! may have small rounding in floating point. This calculator uses hardcoded exact values through 20!.
Roboculator Team
The Roboculator Team explains calculations, planning tools, and practical formulas in clear language for real-life situations.
How helpful was this calculator?
Be the first to rate!