Goal
Calculate an exact nonnegative-integer factorial.
Worldwide context
Saved once here, used across the site.
Currency changes display only. Country selection guides tax input; no tax rate is guessed.
Calculate an exact nonnegative-integer factorial.
n! = 1 x 2 x ... x n, with 0! = 1.A clearer path to an answer
This page keeps the calculation transparent: define the goal, enter the matching values, inspect the method, and decide what the result means in your situation.
Calculate an exact nonnegative-integer factorial.
Whole number n
n! = 1 x 2 x ... x n, with 0! = 1.
Calculate, review the assumptions below, then compare a related tool when the decision needs more context.
Calculate an exact nonnegative-integer factorial.
Open the Factorial pageMore math tools
Download PDFDownload Word (.doc)
Enter your values above and choose Calculate to see the result here.
Calculation map
n! = 1 x 2 x ... x n, with 0! = 1.
Bounded, transparent calculation
Your recent runs stay in this browser session only.
Formula: n! = 1 x 2 x ... x n, with 0! = 1.
The factorial is evaluated with BigInt and returned as text so every digit remains exact even when the result exceeds JavaScript's safe integer range.
Worked example: 10! = 3628800.
The displayed limits are checked before the handler runs. Model-specific domain checks may also reject impossible or non-finite inputs.
Methodology: This calculator follows the WorldCalculate input, formula, precision, and boundary policy. Read the official methodology.
Calculator usage statistics
This section counts anonymous successful Calculate submissions, not unique visitors. Counts and top tools appear only when trusted aggregate data is available; country analysis is shown only under the same condition and reporting threshold.
Answer-first guide
Calculate an exact nonnegative-integer factorial. Start with one clearly defined goal, enter values in the units shown, and keep the result attached to the assumptions below.
This tool is useful when your question includes factorial, n factorial, n!. It returns the outputs declared in the calculator contract rather than a live quote, approval, diagnosis, or professional sign-off.
Whole number n. Keep the same time period, unit system, and currency wherever the form requires comparable values.
Run the worked example first, compare its output with the page's example, then change one input at a time. This makes an unexpected result easier to trace to a unit, boundary, or assumption.
Need a wider view? Browse Math Calculators or compare the related tools below. The WorldCalculate methodology explains how formulas, examples, limits, and revisions are reviewed.
n! = 1 x 2 x ... x n, with 0! = 1.
The factorial is evaluated with BigInt and returned as text so every digit remains exact even when the result exceeds JavaScript's safe integer range.
10! = 3628800.
Context and background
Math calculators move from named quantities to a relation, then to a result that can be checked with substitution, units, or an alternate form.
Arithmetic, algebra, geometry, trigonometry, and number theory provide reusable structures for classroom work and everyday reasoning. Each page narrows that structure to one declared problem.
Research and review
Researched by Hassan ALRowaie, Founder and editorial researcher at WorldCalculate.
This guide follows the live calculator's declared inputs, formula, worked example, assumptions, validation boundaries, and source-backed methodology. The review date describes editorial review of the calculator explanation; it is not a promise that external facts or rates remain current.
A factorial turns a nonnegative whole number into an exact product of all the positive integers up to that number. It appears in counting arrangements, selecting groups, probability formulas, series, and many programming exercises, but its notation can hide two important details: the product starts with 1, and the answer grows far faster than the input. This calculator accepts n from 0 through 1000, treats n as an integer rather than a rounded decimal, computes the product with BigInt, and returns the factorial as text so its digits are not lost to ordinary number precision. The guide below explains what n! means, why 0! is 1, how to read the digit count, how factorials support permutations and combinations, and where this page's deliberately bounded integer contract ends.
The notation n! is read as n factorial. For a positive whole number n, it means multiply every positive integer from 1 through n exactly once: n! = 1 x 2 x 3 x... x (n - 1) x n. The exclamation mark is an operator, not punctuation expressing surprise and not a request to raise n to another power. Thus 4! is 1 x 2 x 3 x 4 = 24, and 7! is 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040. The order of the factors does not change the product, but writing the sequence makes clear which values are included.
On this page, a nonnegative whole number is an integer in the set 0, 1, 2, 3, and so on. The input is not a measurement that can be sensibly averaged, and it is not a decimal variable that should be rounded before calculation. The factorial has a standard integer meaning for this domain. A negative integer does not belong to the ordinary factorial input used here, and a value such as 3.5 is not converted into a nearby factorial by approximation.
Factorials are useful because they encode a complete sequence of choices. If there are n distinct objects and every object is placed in a line, there are n choices for the first position, n - 1 for the second, then n - 2, continuing down to 1. Multiplying those choices gives n!. This interpretation connects the compact notation to a concrete counting question, while the calculator itself remains an arithmetic tool that returns the product rather than a description of any particular group of objects.
The only input is Whole number n. The accepted interval is 0 through 1000 inclusive, and the field advances in whole-number steps. Zero and both endpoints are intentional parts of the contract: n = 0 is valid, n = 1000 is valid, and a value below 0 or above 1000 is rejected. The handler also requires a finite safe integer, so infinity, a nonnumeric value, a fractional value, and a value that is not represented as a safe integer cannot be treated as valid input. Within the published interval, every allowed n is comfortably inside the safe integer range.
The factorial result is different from a typical JavaScript numeric result. The handler starts with the BigInt value 1n, multiplies by each integer through n, converts the final BigInt to a decimal string, and returns that string under the n! result label. The second result is Digits, which is a numeric count of the characters in that exact decimal string. For n = 10, the result text is 3628800 and the digit count is 7. The result is intentionally text: displaying a long integer as a floating-point number could change its least significant digits even when the screen appears to show a plausible answer.
The page therefore makes no promise that the factorial can be used directly as an ordinary numeric value in every surrounding calculation. A text result is not an error or a formatting shortcut. It is the representation that preserves the answer. If you copy the result, keep it as an integer string unless the next tool explicitly supports arbitrary-precision integers. Adding commas for readability is a presentation choice; the calculator's exact value contains the decimal digits themselves without silently inserting rounding or scientific notation.
The value 0! = 1 is not an arbitrary exception added to make a table look neat. It is the identity value for the empty product. A product with no factors contributes no multiplication steps, just as a sum with no terms is 0. Since 1 is the multiplicative identity, multiplying an existing quantity by the empty product leaves that quantity unchanged. This convention lets the general factorial rules continue smoothly down to zero.
The recurrence makes the same point. For n at least 1, n! = n x (n - 1)!. Taking n = 1 gives 1! = 1 x 0!. Since 1! must be 1, the recurrence requires 0! = 1. The counting interpretation agrees: there is exactly one way to arrange zero selected objects, namely the empty arrangement. There is also exactly one way to choose no objects from a set when the selection size is zero. These are not physical arrangements with a hidden object; they are the neutral base cases that make counting formulas consistent.
When the calculator receives n = 0, its multiplication loop has no factors from 2 through 0 to process, so the initial BigInt value 1n remains unchanged. The result is the text 1 and the digit count is 1. This is why entering zero should produce a successful result instead of a validation warning or a zero value. The common mistake 0! = 0 confuses an empty product with a zero product; they have different meanings.
For n = 1, the product contains only 1, so 1! = 1. For n = 2, the product is 1 x 2 = 2. For n = 3, it is 1 x 2 x 3 = 6. These small cases are useful for checking whether a written solution starts and ends at the correct factors. The first factor is 1, which does not change the value, but it belongs to the definition and helps distinguish a factorial from a product that begins at some other number.
For n = 5, calculate in stages: 1 x 2 = 2, then 2 x 3 = 6, then 6 x 4 = 24, then 24 x 5 = 120. Thus 5! = 120. For n = 6, the next step is 120 x 6 = 720, so 6! = 720. The recurrence means that an already calculated factorial can be extended by one multiplication instead of rebuilding all earlier factors. This is also how a simple sequential implementation naturally computes a requested value.
The default example is n = 10. Continuing the same product gives 10! = 3628800, which has 7 decimal digits. A larger exact example is 12! = 479001600, with 9 digits. At n = 18, the value is 6402373705728000. At n = 19, the value is 121645100408832000. The jump from 18! to 19! is exactly multiplication by 19, but that jump crosses the safe-integer boundary for ordinary JavaScript numbers. The factorial value itself is still an exact integer; its representation simply needs more than a binary floating-point Number can guarantee.
For a manual check, choose an n small enough to write the factors, group multiplications that are easy to verify, and compare the final product with the calculator's text. For a larger n, check the recurrence instead: divide the larger exact result by n and confirm that the preceding factorial is recovered, using integer arithmetic rather than a rounded decimal display. The calculator's output is the authoritative product for the entered n within its bounds, while these checks explain why the digits have the value they do.
Factorial growth is faster than the growth suggested by the input alone. The ratio between consecutive values is simple: (n + 1)! / n! = n + 1. Every time n increases, the entire previous product is multiplied by a new factor that is also increasing. This is why changing n from 10 to 20 does not merely double or triple the answer. The exact value 20! is 2432902008176640000, already a 19-digit integer, even though the input has only two digits.
A useful approximation for understanding the scale is Stirling's formula, n! approximately equals sqrt(2 x pi x n) x (n / e)^n for large n. This is an explanatory estimate, not the algorithm or displayed answer used by this page. It shows why factorials combine a power-like term with an additional changing factor. For the exact answer, approximation cannot replace the integer product because even a tiny relative error can alter many final digits.
The catalog caps n at 1000 to keep exact browser work bounded and predictable. The maximum allowed result, 1000!, has 2568 decimal digits. That is a finite string the handler can construct with 999 sequential BigInt multiplications, but it is much too long for a useful hand calculation and large enough that copying, comparing, or placing it into a narrow screen deserves care. The bound is a product and user-interface limit, not a mathematical claim that factorials stop at 1000. Larger factorials exist, but they are outside this page's supported contract.
The Digits result gives a practical size signal without forcing you to count characters. It reports 1 for both 0! and 1!, 7 for 10!, 19 for 20!, and 2568 for 1000!. A large digit count does not make the value approximate; it explains why the value is returned as text. Conversely, a short result does not mean an ordinary floating-point conversion is always appropriate for later code. Precision depends on the representation and the next operation, not just on how many digits are easy to see.
The defining recurrence is n! = n x (n - 1)! for every integer n at least 1, with 0! = 1 as the base case. It is both a mathematical identity and a useful diagnostic. If a result for 8! is correct, multiplying it by 9 must give 9!. If two neighboring results do not have that relationship, at least one product contains an omitted factor, an extra factor, or a transcription error.
The recurrence also explains why factorial values never decrease on this domain. From 0! to 1!, the value stays at 1. After that, multiplying by n where n is at least 2 makes the next result larger. This monotonic behavior is useful when estimating whether a proposed answer is in the right range. For example, 5! must be greater than 4! and equal to 5 times 4!, so a claimed value of 100 for 5! fails both checks.
A program can calculate one requested factorial by initializing a product to 1 and multiplying by each integer through n. If many consecutive factorials are needed, it can retain the running product and extend it one factor at a time. Either method must preserve the integer representation. The recurrence reduces repeated work, but it does not justify converting the running product to a floating-point number between steps; the exactness requirement remains the same at every stage.
A permutation is an arrangement in which changing the order creates a different outcome. If n distinct items are placed in all n available positions, the count is n!. The first position has n choices, the next has n - 1 choices because one item has been used, and so on until the last position has one choice. The multiplication rule gives n x (n - 1) x... x 1 = n!.
Sometimes only r positions are filled from n available items. The number of ordered selections without repetition is written P(n, r) or nPr and equals n! / (n - r)!, provided n and r are whole numbers with 0 <= r <= n. For five distinct items placed into three ordered positions, P(5, 3) = 5! / 2! = 120 / 2 = 60. The direct choice count says the same thing: 5 choices for the first position, 4 for the second, and 3 for the third, giving 5 x 4 x 3 = 60.
This factorial page supplies the exact factorial building blocks but does not accept r and does not present a permutation count as one of its results. If you use its text values in a separate permutation calculation, divide exact integers and check that the denominator is appropriate. Do not interpret the factorial result as an arrangement count unless the objects are distinct, order matters, and every position is being filled in the way your formula assumes. Repeated objects, repeated choices, or restrictions on which items may appear require a different model.
A combination counts selections rather than arrangements. If a committee contains Alice, Ben, and Chen, listing those names in another order does not create a new committee. For n distinct choices and a selection of r items, the binomial coefficient is written C(n, r), nCr, or sometimes n choose r. Its factorial formula is C(n, r) = n! / (r! x (n - r)!), with 0 <= r <= n.
For example, choosing two items from five gives C(5, 2) = 5! / (2! x 3!) = 120 / (2 x 6) = 10. The numerator first counts ordered arrangements of all five items, while division removes the orderings that describe the same two-item selection. Another way to see the result is that five choices can be paired with four choices, but each unordered pair was counted twice, once in each order, so 5 x 4 / 2 = 10.
The symmetry C(n, r) = C(n, n - r) is a useful check. Choosing two people to serve on a panel is equivalent to choosing the three people who are left out, so C(5, 2) equals C(5, 3). The boundary cases also follow the factorial convention: C(n, 0) = 1 and C(n, n) = 1 because there is one way to choose nobody and one way to choose everybody. These facts rely on 0! = 1 in the formula.
This page calculates n! only. It does not accept a selection size r, classify a problem as ordered or unordered, or calculate a binomial coefficient directly. For larger n, evaluating three separate factorial strings and dividing ordinary numeric conversions can lose precision. A dedicated exact combination routine should use BigInt arithmetic, cancel factors safely, or use an integer recurrence. The factorial output remains a reliable exact component when its role and representation are kept clear.
A trailing zero is a zero at the right end of the decimal representation. Each trailing zero comes from a factor of 10, and each factor of 10 is a pair of factors 2 x 5. In a factorial product there are more factors of 2 than factors of 5, so the number of trailing zeros is controlled by how many factors of 5 appear. The count is floor(n / 5) + floor(n / 25) + floor(n / 125) +... until the next power of 5 exceeds n. The later terms count extra factors inside multiples of 25, 125, and higher powers.
For 5!, there is one factor of 5 and enough factors of 2, so the answer 120 has one trailing zero. For 10!, floor(10 / 5) = 2, and 10! ends in two zeros: 3628800. For 25!, the count is floor(25 / 5) + floor(25 / 25) = 5 + 1 = 6. The extra one exists because 25 contributes two factors of 5 rather than one. At the catalog maximum, 1000! has 200 + 40 + 8 + 1 = 249 trailing zeros.
Trailing-zero count is not the same as total digit count. The calculator reports the latter as Digits, using the exact text length. It does not report the number of trailing zeros as a separate result, although the exact output lets you inspect them without risk of a rounded final block. For example, 10! has 7 total digits and 2 trailing zeros. A result can have many digits but relatively few terminal zeros, and a string operation that trims zeros for display would destroy information about the integer.
The number of digits generally increases as n grows, but it does not increase at every step. Multiplying by the next integer can leave the decimal length unchanged for one or more steps before crossing a power of ten. The exact digit count is therefore safer than a guess based only on the number of input digits. If you need leading-digit estimates, logarithms or Stirling-style approximations can help, but they are not substitutes for the exact text returned by this page.
Factorial and exponentiation both produce rapidly increasing values, but they use different operations. In n!, the factors change from 1 to n. In a^n, the same base a is multiplied by itself n times. For n = 5, 5! = 1 x 2 x 3 x 4 x 5 = 120, while 5^5 = 3125. The fact that both expressions contain a 5 does not make them interchangeable.
For n at least 1, every factor in n! is at most n, so n! <= n^n. This inequality is a rough upper comparison, not an equality and not a good estimate for exact work. For n = 5, it says 120 <= 3125. At small inputs the relative sizes depend on the chosen base and exponent, but factorial has a special growth pattern because the new factor changes with n. Against a fixed positive base raised to n, factorial eventually grows faster: once the next factor is larger than that base, the factorial-to-power ratio keeps receiving increasingly large multiplicative advantages.
In programming notation, n! should not be replaced with n ** n, Math.pow(n, n), or an exponentiation operator. Those expressions answer a different question. A factorial implementation needs a product loop or a trusted integer factorial algorithm, a base case of 1, and validation of the integer domain. This calculator keeps the distinction visible in its formula and in its exact result rather than offering a rounded power as a tempting substitute.
Many languages have a fixed-width integer type or a floating-point number type that cannot hold every digit of a factorial. In JavaScript, Number represents integers exactly only through 9,007,199,254,740,991. The value 18! is below that threshold, but 19! is above it. A Number conversion of 19! can therefore look like a whole integer while no longer representing the exact factorial. Formatting that Number with commas or decimal places does not repair the lost information.
The handler avoids that problem by using BigInt for the running product. BigInt values represent integers with arbitrary precision subject to available resources, and the final value is converted to a string only after the exact multiplication is complete. Returning text is important at the application boundary because JSON and result-rendering code can pass a string safely where a direct BigInt value would not be serializable or where a generic numeric formatter might coerce it. The separate digit count remains a regular number because 2568 is safely representable.
If you reproduce the calculation in JavaScript, use a loop such as a product initialized to 1n and multiply it by BigInt(value) at each step. Do not mix BigInt and Number in one arithmetic expression without an explicit conversion, and do not convert the final BigInt to Number merely to use a familiar formatter. If you need a machine-readable answer, preserve the decimal string and validate that it contains only the expected digits. A text result can still be compared, stored, copied, or passed to another arbitrary-precision routine.
Validation is part of numerical correctness, not just user-interface behavior. Check that n is finite, integral, nonnegative, and within 1000 before starting the loop. Reject a decimal rather than truncating it, reject a negative value rather than taking its absolute value, and reject a value beyond the bound rather than calculating a partial answer. The calculator follows this rule: it does not silently round or reinterpret an input to make it fit. A program that uses a different input policy is implementing a different factorial contract and should label that difference clearly.
For permutations, combinations, binomial probabilities, and similar formulas, exact factorial strings are useful but direct factorial division is not always the most efficient route. Three large factorials can contain many cancellable factors, and a naive floating-point quotient can lose integer exactness. A separate implementation can cancel factors before multiplying, use a multiplicative recurrence, or use BigInt throughout. The key lesson is to choose an exact representation for the full calculation, not only for the first factorial value.
The most common conceptual mistake is treating 0! as 0. Start from the empty-product rule and the recurrence instead: 0! = 1 and 1! = 1. A second mistake is omitting the factor 1 or stopping at n - 1. Omitting 1 does not change the product numerically, but stopping at n - 1 does. For example, 5! is 120, while 1 x 2 x 3 x 4 is only 24 and is actually 4!.
Another mistake is replacing the factorial with a power. The expression 6! is 720, not 6^6. Writing the first few factors is a quick way to expose this error. It is also easy to confuse a factorial with a partial permutation or a combination. Ask whether all n distinct objects are arranged, whether only r are selected, and whether order matters before applying a formula containing factorials.
Precision mistakes often begin when a large result is copied through an ordinary number field. A displayed scientific-notation value may have been rounded, and a conversion back to an integer string can preserve the rounded value rather than recover the original factorial. Keep the calculator's text result as text. The same warning applies when checking a result with a spreadsheet or language runtime that automatically stores all values as floating point.
Input mistakes are equally important. A value such as 4.9 is not a request for 4!, 5!, or an interpolated factorial. A negative n is not repaired by using its absolute value, and an n above 1000 is not replaced by 1000. The page's response to these cases is rejection because each substitution would answer a different question. For a final sanity check, verify the base case, write the last multiplication, compare the digit count, and confirm the result is consistent with the neighboring factorial.
The factorial has a broader mathematical relationship with the Gamma function. For every nonnegative integer n, n! = Gamma(n + 1). Gamma extends the factorial pattern smoothly to many positive noninteger inputs. For example, the value commonly called one-half factorial is Gamma(3/2), which equals sqrt(pi) / 2. Such values are not ordinary integer products because there is no finite list of consecutive whole-number factors from 1 to 1/2.
That extension is useful in advanced mathematics, but it is outside this calculator's job. This page accepts only a nonnegative whole-number n from 0 through 1000. It does not evaluate noninteger factorials, it does not call a Gamma approximation, and it does not silently round 2.7 to 3 or 2.7 to 2. If you enter a fractional value, the input is rejected as not a safe whole number. This protects the meaning of the result: every returned digit comes from the ordinary integer product described by the formula.
The Gamma function also has poles at zero and the negative integers, so extending factorial notation is not the same as declaring every real or complex input valid. Negative integer factorials are not part of the ordinary sequence used here. The catalog deliberately chooses the simpler, exact discrete domain because it supports combinatorial counting and an unambiguous BigInt result. A Gamma-capable numerical tool would have different inputs, output precision, error behavior, and practical limits.
In discrete mathematics, factorials provide the scale for counting arrangements, deriving permutation and combination formulas, and defining coefficients in expansions. A student can use 6! to check the number of orders for six distinct items, then use the recurrence to prove the value rather than memorizing it. In probability, factorials appear in formulas for unordered selections and distributions, but the surrounding assumptions determine whether the formula is appropriate. The calculator verifies the integer building block; it does not choose the probability model for you.
In programming, an exact factorial is a compact test case for arbitrary-precision arithmetic, serialization, and overflow handling. Values around 18! and 19! make a useful boundary comparison because one remains within JavaScript's exact integer range while the next does not. Values near 1000! exercise long text rendering and copying without requiring an unbounded computation. These are practical tests of representation, not recommendations to use factorials for arbitrary data sizes.
In algebra and calculus study, factorials appear in series coefficients and derivative formulas. Those contexts may use factorial values as denominators or combine them with powers and signs. The page can supply the exact integer factor, but a complete series calculation may need terms outside the accepted input, rational simplification, or a separate precision policy. Treat the result as one verified component and preserve its integer nature until the rest of the calculation has been designed.
For everyday decisions, factorials are usually a count of theoretical possibilities rather than a prediction of what will happen. The result does not account for indistinguishable objects, restrictions, repeated choices, unavailable positions, or human preferences. If the objects are not distinct, divide by the appropriate repetition counts only when the model justifies it. If some arrangements are forbidden, subtract or count those cases separately. Exact arithmetic cannot correct an incorrect interpretation of the situation.
This calculator answers one bounded question: what is the ordinary factorial of the entered nonnegative whole number n? It does not calculate a factorial for a negative integer, a fraction, a decimal, or a complex value. It does not use Gamma to fill that gap, and it does not round an input that is close to an integer. The accepted maximum is 1000, so requests for 1001 or higher are rejected even though their mathematical factorials exist.
The page has one input and returns the exact factorial text plus its digit count. It does not calculate permutations, combinations, arrangements with repeated objects, derangements, subfactorials, double factorials, rising factorials, falling factorials, logarithmic factorials, or factorial ratios as separate operations. Those expressions may contain a factorial symbol or related notation, but they have different definitions and often need extra parameters. Do not infer one of them from an n! result without writing its full formula.
The result is exact within the declared integer domain, but exactness does not answer questions about a real-world process. It cannot determine whether a set of objects is truly distinct, whether an arrangement is allowed, whether an event is equally likely, or whether a very large text value fits another system's storage limit. It also does not estimate a rounded approximation for a value outside the boundary. The useful interpretation is narrower and stronger: the returned string is the exact decimal value of the ordinary factorial for the accepted n.
At the upper boundary, the answer has 2568 digits. That is deliberately finite enough for a browser-based exact calculation, yet long enough that a reader may prefer to use the digit count, trailing-zero rules, or a separate logarithmic estimate when only scale matters. Those shortcuts can support planning, but they should not be mistaken for the exact output. Choose the calculator result when every digit matters, and choose a different bounded method when the mathematical question itself is different.
Begin by checking the domain: n must be a whole number at least 0 and no greater than 1000. Next, identify the operation as a product, not a power. For a small n, write 1 through n and multiply. For a larger n, use the recurrence and compare the result with the previous factorial when that value is available. The last step should always multiply by n, so n! divided by n must equal (n - 1)! for n >= 1 when the division is performed exactly.
Use the base cases as anchors. If n = 0, the answer is 1. If n = 1, the answer is also 1. If n = 2, the answer is 2. These values catch the most common off-by-one and empty-product errors. Then check scale: 5! must be 120, 10! must be 3628800, and each later result must be larger after n reaches 2. A proposed answer with the wrong number of digits or an unexpected lack of terminal zeros deserves a second look.
When comparing with code, keep exact text on both sides. Do not parse a long result into a floating-point Number and assume that converting it back to text preserves the original. For a BigInt implementation, compare the decimal strings or compare BigInt values directly. For a written explanation, state n, the product or recurrence used, the exact result, and the digit count if the number is long. This gives another reader enough context to reproduce the check without guessing which factorial or precision policy was intended.
Finally, separate a correct arithmetic result from a correct application. A value of 8! may be the right product but the wrong answer if a problem actually asks for arrangements of only three positions, or for selections where order does not matter. First verify the factorial itself, then verify that the larger formula and its assumptions match the question. Exact digits are most useful when the definition around them is exact too.
Why is the answer for zero not zero? Because 0! is an empty product and the multiplicative identity is 1. The same value is required by the recurrence and by the fact that there is one empty arrangement. The calculator intentionally treats n = 0 as a valid input and returns the text 1.
Why does the answer appear as text? Factorials become larger than JavaScript's exact Number range quickly. Text preserves every decimal digit, including the final digits and trailing zeros. The Digits result is separate because it is a small count that can safely remain numeric. Do not convert the text to an ordinary Number if exactness matters.
Can I enter 4.5 and get a Gamma-based answer? No. This page accepts only nonnegative whole numbers from 0 through 1000. It neither evaluates noninteger factorials nor silently rounds them. A Gamma-capable calculation is a different contract with different output and precision rules, so a rejected decimal should not be interpreted as a missing rounded answer.
Is 1000! the largest factorial that exists? No. It is only the largest n accepted by this calculator. The mathematical sequence continues beyond 1000, but the page deliberately bounds input and exact output size for predictable browser behavior. The largest supported result has 2568 digits, which is already substantial for display and copying.
Does the factorial calculator calculate permutations or combinations? It calculates only n!. Permutations and combinations use factorials in formulas that need an additional selection size and an interpretation of order. You can use an exact factorial result as a building block, but do not assume the page has already applied the numerator, denominator, repetition, or selection rules for your problem.
How can I tell whether a long answer is plausible? Check its digit count, its trailing zeros, and the recurrence with a neighboring factorial. The result should be 1 at both 0! and 1!, 2! should be 2, and every step after that multiplies by the new input. For more formal work, keep the full text and verify it with an arbitrary-precision implementation rather than a rounded calculator display.
Calculate an exact nonnegative-integer factorial.
n! = 1 x 2 x ... x n, with 0! = 1. The factorial is evaluated with BigInt and returned as text so every digit remains exact even when the result exceeds JavaScript's safe integer range.
Enter Whole number n, then choose Calculate.
n is a nonnegative whole number. The result is the ordinary integer factorial, not the Gamma-function continuation to nonintegers. The input is limited to keep exact browser computation finite.
This calculator is part of the WorldCalculate library. Its formula, example, assumptions, input bounds, and output formatting follow the official methodology.
These WorldCalculate collections connect this tool with related questions while keeping each calculation separate and transparent.