Fatorial com BigInt (n!)
Calcula n! para n até 1000 usando BigInt, exibindo o resultado completo (pode ter centenas de dígitos) e o número de dígitos.
Fatoriais grandes com BigInt
O fatorial dispara rápido. Em 13! você já estourou 2³² (overflow Int32), e em 21! ultrapassa 2⁶⁴ (overflow Int64). O problema no JavaScript é que o tipo Number é um float de 64 bits, que deixa de ser exato acima de Number.MAX_SAFE_INTEGER = 2⁵³ − 1. É aí que entra o BigInt, parte da linguagem desde o ES2020, com inteiros de precisão arbitrária escritos com o sufixo n (10n). Calcular o valor não tem segredo — é um loop sobre um acumulador BigInt: let r = 1n; for (let i = 2n; i <= BigInt(n); i++) r *= i;. Se você só quer ter uma noção do tamanho, a aproximação de Stirling resolve: n! ≈ √(2πn)·(n/e)ⁿ. Para dar números: 100! tem 158 dígitos e 1000! chega a 2.568.
Aplicações e contexto
Você esbarra nisso em criptografia, onde o RSA faz aritmética modular sobre inteiros enormes, e em combinatória teórica, onde o TSP por força bruta é O(n!). Aparece também na análise combinatória em ML quando se conta permutações de features, em contadores grandes apoiados em colunas BigInt de bancos de dados, e nas competições de programação — vários problemas de Codeforces e Project Euler têm respostas que não cabem em 64 bits.
Perguntas frequentes
Por que não usar Number para fatoriais grandes? Passando de 2⁵³ o resultado vem arredondado, então os últimos dígitos saem errados. O BigInt mantém todos os dígitos exatos.
BigInt é lento? Multiplicar um número de N dígitos custa O(N), ou O(N log N) nas engines que recorrem a FFT. Na prática, o V8 moderno calcula 1000! em poucos milissegundos.
Posso misturar BigInt com Number? Não. O JavaScript lança um TypeError se você tentar. É preciso converter antes, com BigInt(x) ou Number(b).
Ferramentas Relacionadas
Combinações e Permutações
Calcule combinações C(n,k) e permutações P(n,k) com fórmulas e resultados para números grandes. Essencial para análise combinatória.
Calculadora de Fatorial
Calcule n! (fatorial) de qualquer inteiro até 170 (limite de double precisão). Acima disso, exibe BigInt exato. Útil para combinatória, probabilidade e matemática discreta. Tudo no navegador.
Fatorial Grande (BigInt)
Calcule o fatorial de números grandes (n!) com precisão arbitrária usando BigInt, sem perder dígitos. Ideal para análise combinatória e probabilidade.
Os resultados desta ferramenta têm caráter apenas informativo e educativo e não constituem aconselhamento profissional, financeiro, médico, jurídico, tributário ou contábil. Confirme decisões importantes com um profissional qualificado e fontes oficiais.