소수 확인 도구이란?
어떤 숫자가 소수인지 즉시 확인하세요. 합성수의 경우 완전한 소인수분해가 표시됩니다. 임의의 범위에서 소수 목록을 생성하고 이전/다음 소수를 찾을 수 있어 수학 교육, 암호화 기초, 수론에 유용합니다.
입력에 상한이 없습니다. JavaScript 안전 정수 범위에 드는 수는 더 빠른 시행 나눗셈 경로를 쓰고, 그보다 큰 수는 결정적 BigInt 밀러-라빈 테스트로 넘어가므로 암호 규모의 소수도 정확히 판정합니다. 인수 분해 트리는 한 단계씩 펼쳐 보여줍니다(84 → 2 × 42 → 2 × 21 → 3 × 7). 아주 큰 합성수에서는 10^7을 넘는 남은 보조 인수를 더 쪼개지 않고 그대로 표시합니다. 범위 검색은 1천만 개까지 결과를 스크롤할 수 있고, N번째 소수도 바로 찾을 수 있어 코딩 챌린지나 정수론 연습에 좋습니다.
사용 방법
- 양의 정수를 입력하여 소수 여부를 확인하세요. 큰 숫자도 결과가 즉시 나타납니다.
- 합성수는 완전한 소인수분해 트리를 확인하세요. 소수는 위아래 가장 가까운 소수가 표시됩니다.
- 범위 검색으로 두 수 사이의 모든 소수를 나열하거나 첫 N개의 소수를 생성하세요.
사용 시기
- 정수론·이산수학 과제 답안을 확인할 때.
- 해시 함수나 교육용 암호 예제에 쓸 소수 모듈러스를 고를 때.
- Project Euler나 알고리즘 대회 문제에서 처음 N개 소수가 필요할 때.
결과
97을 입력하면 소수입니다. 84를 입력하면 소수가 아니며 인수는 2² × 3 × 7입니다. 1부터 100 사이의 모든 소수를 생성하면 25개를 확인할 수 있습니다.
자주 묻는 질문
- 아주 큰 수를 판정하는 데 얼마나 걸리나요?
- 일반적인 입력은 10밀리초를 한참 밑돕니다. 결정적 witness가 붙은 밀러-라빈은 대략 O(log³ n)의 모듈러 거듭제곱이 필요하므로, 수십 자리 수라도 곱셈 수십 번 수준에서 끝납니다. 12자리 수든 암호 규모의 소수든 UI는 체감상 즉시 결과가 나옵니다.
- 소인수분해는 항상 유일한가요?
- 유일합니다. 산술의 기본 정리에 따라, 1보다 큰 모든 정수는 순서를 빼면 정확히 한 가지 소인수분해를 가집니다. 도구는 인수를 오름차순으로 정렬하고 중복은 지수로 묶어 표시하므로(84 = 2² × 3 × 7) 교과서와 같은 표기가 됩니다.
- 최대로 검사할 수 있는 수는 얼마인가요?
- 고정된 상한은 없습니다. JavaScript 안전 정수 범위에 드는 수는 더 빠른 시행 나눗셈 경로를 쓰고, 더 큰 입력은 BigInt 밀러-라빈 테스트가 처리합니다. 이 테스트는 3.3 × 10^24 미만의 모든 수에 대해 정확함이 증명되어 있고, 그 범위를 한참 넘어서도 매우 강력한 확률적 소수 판정으로 작동하므로 암호 규모의 소수도 무리 없이 검사합니다.
- 왜 0과 1은 소수에 포함되지 않나요?
- 소수는 "1과 자기 자신, 정확히 두 개의 양의 약수를 갖는 양의 정수"로 정의됩니다. 1의 양의 약수는 자기 자신 하나뿐이라 조건을 만족하지 못하고, 0은 약수가 무한히 많습니다. 둘을 제외해야 인수 분해의 유일성이 예외 없이 성립합니다.
- 소수는 실제 암호학에서 어떻게 쓰이나요?
- RSA는 약 1024비트짜리 소수 두 개를 골라 곱한 값을 공개키의 일부로 발표합니다. 그 곱을 다시 두 소수로 분해하기 어려운 것이 RSA의 안전성을 떠받칩니다. 같은 크기에서도 소수 판정은 빠르기 때문에, 키 생성은 병목이 되지 않습니다.