1001Ferramentas
Calculadoras

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

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.