정확한 정수 · 경우의 수
팩토리얼 계산기 – n! 계승·순열·조합 계산
0!부터 5000!까지 정확한 값과 자릿수를 확인하세요.
계산은 브라우저에서 수행하며 입력·결과를 서버에 보내거나 자동 저장하지 않습니다. 공유는 계산기 주소만 포함합니다.
팩토리얼이란 무엇인가요?
팩토리얼(계승)은 음이 아닌 정수 n에 대해 1부터 n까지의 정수를 곱하는 연산이며 n!로 씁니다. 서로 다른 n개를 순서 있게 나열하는 경우의 수와 연결됩니다. 3!=3×2×1=6입니다.
팩토리얼 계산기 사용 방법
n을 입력하고 계산하면 정확한 값·자릿수·끝자리 0을 확인합니다. 0~5000을 지원하며 음수·소수·지수 표기는 받지 않습니다. 앞뒤 공백·선행 0·정상 천 단위 쉼표는 허용하지만 1,2,3 같은 표기는 거부합니다. 큰 값은 먼저 축약 표시하며 전체보기·복사·TXT 저장으로 정확한 원문을 확인할 수 있습니다.
팩토리얼 계산 공식
n!=1×2×…×n이며 0!=1, 1!=1입니다. n≥1에서 n!=n×(n−1)! 관계가 성립합니다. 예를 들어 6!=6×5!=6×120=720입니다.
팩토리얼 구하는 법
곱을 1에서 시작하여 2, 3, …, n을 차례로 곱합니다. 5!의 중간 값은 2→6→24→120입니다. 이 계산기는 반복문과 BigInt로 계산하며 계산용 정수를 Number로 바꾸지 않습니다.
0!이 1인 이유
빈 곱의 항등값을 1로 두면 1!=1×0! 관계가 유지됩니다. 아무 항목도 선택하지 않거나 빈 배열을 나열하는 방법도 한 가지입니다. 그래서 0!=1이고 0P0=0C0=1입니다.
5!·10!·20! 계산 예시
5!=120, 10!=3,628,800, 20!=2,432,902,008,176,640,000입니다. 20!은 JavaScript 최대 안전 정수보다 큽니다. 이 값 자체가 특정 Number 표현에서 정확히 보일 수 있어도 큰 팩토리얼 전반의 정확성을 Number에 맡기지 않습니다.
100!은 얼마나 큰 숫자인가요?
100!은 정확히 158자리이고 끝자리 0이 24개입니다. 1000!은 2568자리, 5000!은 16326자리입니다. 이 범위의 자릿수는 로그 근사가 아니라 정확한 정수 문자열 길이입니다.
팩토리얼 계산 과정
n≤10에서는 중간 곱셈 결과를 모두 제공합니다. 11~20에서는 전체 곱셈식, 20을 넘으면 n×(n−1)×…×2×1 형태를 사용합니다. 큰 n의 수천 단계를 화면에 생성하지 않습니다.
팩토리얼 표 0!~20!
아래 표의 값은 정확한 십진 정수입니다. 사용자 지정 표는 시작≤종료≤5000, 최대 100행이며 누적 곱으로 생성합니다. CSV를 Excel에서 바로 열면 15자리보다 긴 값이 숫자로 해석되어 손실될 수 있습니다. 텍스트 열로 가져오거나 TXT로 보관하세요.
| n | n! | 자릿수 | 끝자리 0 |
|---|---|---|---|
| 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 0 |
| 2 | 2 | 1 | 0 |
| 3 | 6 | 1 | 0 |
| 4 | 24 | 2 | 0 |
| 5 | 120 | 3 | 1 |
| 6 | 720 | 3 | 1 |
| 7 | 5040 | 4 | 1 |
| 8 | 40320 | 5 | 1 |
| 9 | 362880 | 6 | 1 |
| 10 | 3628800 | 7 | 2 |
| 11 | 39916800 | 8 | 2 |
| 12 | 479001600 | 9 | 2 |
| 13 | 6227020800 | 10 | 2 |
| 14 | 87178291200 | 11 | 2 |
| 15 | 1307674368000 | 13 | 3 |
| 16 | 20922789888000 | 14 | 3 |
| 17 | 355687428096000 | 15 | 3 |
| 18 | 6402373705728000 | 16 | 3 |
| 19 | 121645100408832000 | 18 | 3 |
| 20 | 2432902008176640000 | 19 | 4 |
팩토리얼 자릿수 구하는 방법
정확한 n!을 십진 문자열로 바꾼 길이가 자릿수입니다. 0!과 1!은 1자리, 5!은 3자리, 10!은 7자리, 20!은 19자리입니다. 5000을 넘는 Stirling 근사 자릿수 기능은 제공하지 않습니다.
팩토리얼 끝자리 0 개수 구하는 법
10=2×5이고 팩토리얼에는 2가 충분하므로 5의 인수 개수를 셉니다. Z(n!)=⌊n/5⌋+⌊n/25⌋+⌊n/125⌋+…입니다. 100!은 20+4=24개, 5000!은 1000+200+40+8+1=1249개입니다.
순열(nPr)과 팩토리얼 관계
서로 다른 n개에서 r개를 순서를 고려해 선택하는 경우의 수는 nPr=n!/(n−r)!입니다. 5P2=5×4=20입니다. 계산 엔진은 필요한 r개의 인수만 곱하며 전체 팩토리얼 둘을 따로 만들지 않습니다.
조합(nCr)과 팩토리얼 관계
순서를 고려하지 않는 선택은 nCr=n!/[r!(n−r)!]입니다. 5C2=10, 52C5=2,598,960입니다. C(n,r)=C(n,n−r)을 이용하고 곱셈·정확한 정수 나눗셈으로 계산합니다. r은 n 이하여야 합니다.
팩토리얼과 거듭제곱의 차이
5!=5×4×3×2×1=120이고 5⁵=5×5×5×5×5=3125입니다. 팩토리얼은 서로 다른 연속 정수를 곱하고 거듭제곱은 같은 밑을 반복해 곱합니다.
팩토리얼과 이중 팩토리얼의 차이
n!!은 n부터 2씩 줄여 같은 홀짝의 양의 정수를 곱하는 별도 연산입니다. 7!!=7×5×3×1=105입니다. (n!)!와 다릅니다. 이 계산기는 일반 n!만 계산하며 n!! 계산 기능은 제공하지 않습니다.
팩토리얼을 Python으로 계산하는 방법
표준 라이브러리 math.factorial(n)을 사용합니다. 예: import math 다음 print(math.factorial(5))는 120을 출력합니다. 입력은 음이 아닌 정수이며 소수값을 일반 팩토리얼로 허용하지 않습니다. 큰 정수 출력 정책은 Python 환경에 따라 별도로 확인하세요.
import math
print(math.factorial(5)) # 120팩토리얼을 JavaScript로 계산하는 방법
결과를 BigInt로 유지하고 출력·복사·파일 저장에는 toString()을 사용합니다. Number.MAX_SAFE_INTEGER는 9,007,199,254,740,991입니다. Number 결과로 바꾸거나 bigint를 JSON.stringify()에 직접 넣지 않습니다. Worker 메시지에는 정확한 정수 문자열을 보냅니다.
function factorial(n) {
if (!Number.isSafeInteger(n) || n < 0 || n > 5000) {
throw new RangeError("0~5000");
}
let result = BigInt(1);
for (let i = 2; i <= n; i++) result *= BigInt(i);
return result;
}
console.log(factorial(20).toString());팩토리얼 재귀함수와 반복문의 차이
재귀는 n×factorial(n−1) 형태를 표현하기 쉽지만 큰 n에서는 호출 스택 한계가 있습니다. 이 도구는 반복문을 사용합니다. 감마 함수로 실수 영역을 확장하는 개념은 일반 팩토리얼과 구분하며 소수·음수 입력으로 대체하지 않습니다.
자주 묻는 질문
팩토리얼이란 무엇인가요?
1부터 n까지의 정수 곱인 계승이며 n!로 표시합니다.
팩토리얼은 어떻게 계산하나요?
1에서 시작해 2부터 n까지 차례로 곱합니다. 5!은 120입니다.
팩토리얼 공식은 무엇인가요?
n!=1×2×…×n, n≥1에서는 n!=n×(n−1)!입니다.
0!은 왜 1인가요?
빈 곱의 값을 1로 두면 곱셈 관계와 빈 배열의 한 가지 경우가 일관됩니다.
1!은 얼마인가요?
1!=1입니다.
5!은 얼마인가요?
5×4×3×2×1=120입니다.
10!은 얼마인가요?
10!=3,628,800입니다.
20!은 얼마인가요?
20!=2,432,902,008,176,640,000입니다.
100!은 몇 자리인가요?
정확히 158자리입니다.
100!의 끝자리 0은 몇 개인가요?
⌊100/5⌋+⌊100/25⌋=20+4=24개입니다.
팩토리얼 계산에 음수를 넣을 수 있나요?
일반 팩토리얼은 음이 아닌 정수만 지원하며 이 도구는 0~5000을 받습니다.
소수의 팩토리얼도 계산할 수 있나요?
이 도구에서는 지원하지 않습니다. 감마 함수 확장과 일반 팩토리얼을 구분합니다.
순열과 조합은 어떻게 다른가요?
순열은 순서를 고려하고 조합은 순서를 고려하지 않습니다.
5P2와 5C2는 얼마인가요?
5P2=20, 5C2=10입니다.
팩토리얼과 제곱은 무엇이 다른가요?
5!=120, 5²=25입니다. 연속 정수 곱과 같은 수의 반복 곱은 다릅니다.
팩토리얼 값이 매우 커지는 이유는 무엇인가요?
n이 늘 때마다 새로운 인수를 곱합니다. 1000!만 해도 2568자리입니다.
큰 수의 팩토리얼은 어떻게 계산하나요?
BigInt 정수 곱을 Worker에서 계산합니다. 정확 계산 상한은 5000입니다.
JavaScript Number로 팩토리얼을 계산하면 왜 문제가 생기나요?
안전 정수 범위를 넘으면 일반적으로 정수의 모든 자리를 보장할 수 없습니다. 이 도구는 BigInt를 사용합니다.
BigInt는 무엇인가요?
JavaScript에서 큰 정수를 정확하게 표현하고 계산하는 정수 자료형입니다. 계산 결과를 Number로 바꾸지 않습니다.
Python에서 팩토리얼은 어떻게 구하나요?
import math 후 math.factorial(5)를 호출하면 정수 120을 얻습니다.
팩토리얼 재귀함수와 반복문 중 무엇이 좋나요?
학습용 재귀 표현과 달리 큰 값의 실행에는 호출 스택을 쓰지 않는 반복문이 적합합니다.
이중 팩토리얼 n!!은 무엇인가요?
n×(n−2)×…의 곱입니다. 7!!=105이며 이 페이지는 n!!을 계산하지 않습니다.
출처 및 검토일
2026-10-14 검토 · 정확 계산 범위 0~5000 · 근사 확장·감마·이중 팩토리얼은 계산하지 않습니다.