🌐 KO

🔢 팩토리얼 계산기

n!(n의 팩토리얼)을 자바스크립트 BigInt로 반올림 오차 없이 정확하게 계산합니다. n은 0 이상 5000 이하의 정수만 입력할 수 있습니다.

0 이상 5000 이하의 정수를 입력하세요. 결과는 정확한 정수로 표시됩니다.

계산 결과
가이드

자세히 알아보기

01

팩토리얼(n!)이란?

팩토리얼은 1부터 n까지의 모든 양의 정수를 곱한 값으로, n! = 1 × 2 × 3 × ⋯ × n으로 정의됩니다. 예를 들어 5! = 1×2×3×4×5 = 120입니다. 관례상 0! = 1로 정의합니다. 팩토리얼은 순열·조합(경우의 수), 확률론, 급수 전개 등 수학의 여러 분야에서 기본 도구로 사용됩니다.
02

왜 BigInt로 계산하나요?

자바스크립트의 일반 숫자(Number)는 2⁵³-1(약 9×10¹⁵)을 넘어가면 정확도를 잃습니다. 하지만 n이 조금만 커져도 n!은 이 값을 순식간에 넘어섭니다(18! 부터 이미 약 6.4×10¹⁵). 이 계산기는 자바스크립트의 BigInt 타입으로 곱셈을 수행해, n이 커도 반올림 오차 없이 정확한 정수 값을 그대로 표시합니다.
03

참고 값과 입력 상한

5! = 120, 10! = 3,628,800, 15! = 1,307,674,368,000, 20! = 2,432,902,008,176,640,000입니다. n이 커질수록 자릿수가 매우 빠르게 늘어나(100!은 158자리, 1000!은 2568자리) 결과가 길어지므로, 서버·브라우저 부하를 막기 위해 입력값을 n ≤ 5000으로 제한합니다.

자주 묻는 질문

왜 n의 최댓값이 5000인가요?
n이 커질수록 n!의 자릿수가 기하급수적으로 늘어나(5000!은 약 16,326자리) 계산과 렌더링에 필요한 자원도 함께 커집니다. 과도한 자원 사용을 막기 위해 5000이라는 상한을 두었으며, 대부분의 실용적인 계산에는 충분한 범위입니다.
0!은 왜 1인가요?
0!은 수학적 관례로 1로 정의됩니다. 이는 "아무것도 선택하지 않는 경우의 수는 1가지"라는 조합론적 해석과, 팩토리얼의 재귀 정의 n! = n × (n-1)!이 n=1일 때도 일관되게 성립하도록 하기 위함입니다.
음수나 소수를 입력하면 어떻게 되나요?
팩토리얼은 음이 아닌 정수에 대해서만 정의되므로, 음수·소수·문자 등을 입력하면 오류 메시지가 표시됩니다. (감마 함수를 이용하면 음의 정수를 제외한 실수·복소수로 확장할 수 있지만, 이 계산기는 정수 팩토리얼만 다룹니다.)