본문으로 건너뛰기
AZ Tools

소인수분해 · GCD · LCM

정수를 소수로 인수분해·모든 약수 나열·두 수의 GCD·LCM 계산. ~10¹²까지 처리.

GCD (최대공약수)

36

LCM (최소공배수)

2520

360

소인수분해

2^3 × 3^2 × 5

약수 (24)

1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, 20, 24, 30, 36, 40, 45, 60, 72, 90, 120, 180, 360

252

소인수분해

2^2 × 3^2 × 7

약수 (18)

1, 2, 3, 4, 6, 7, 9, 12, 14, 18, 21, 28, 36, 42, 63, 84, 126, 252

√n까지 시행 분할. ~10¹²까지 입력에 빠름. 빠른 응답 위해 10⁹ 초과 시 약수 스캔 건너뜀.

사용법

  1. A 필드에 숫자를 입력하면 인수분해·약수·소수 판정이 나옵니다.
  2. B 필드에 두 번째 숫자를 추가하면 GCD·LCM도 계산합니다.
  3. 인수분해를 복사하거나 약수 목록을 확인합니다. 매우 합성된 수는 약수 목록이 처음 200개로 제한됩니다.

자세한 설명

펼치기

양의 정수를 하나나 둘 넣으십시오. 각각에 대해 p^e × q^f 형태의 소인수분해, 모든 약수, 그 수가 소수인지를 보여 줍니다. 둘 다 넣으면 최대공약수(분수 약분에 쓰입니다)와 최소공배수(공통 주기를 찾을 때 쓰입니다)도 나옵니다. √n까지의 시행 나눗셈은 약 10의 12제곱까지의 수에 충분히 빠르며 전부 브라우저에서 돕니다.

시행 나눗셈을 가망 없는 일이 아니라 실용적인 것으로 만드는 것이 제곱근 한계입니다. 합성수는 언제나 제곱근 이하에 약수를 하나 갖고 있으므로, 시행이 √n을 지나도록 걸리는 것이 없으면 그 수는 소수이고 더 확인할 것이 없습니다. 이것이 1조 개 후보 탐색을 100만 개 탐색으로 바꿔 주고, 브라우저는 그것을 순식간에 해냅니다.

그래도 제곱근에 비례해 늘어나며, 그것이 천장입니다. 자릿수가 두 개 늘 때마다 일이 열 배가 되므로, 스무 자리 수는 100억 번의 시행이 필요하고 암호학적 크기의 수는 상상할 수 없는 차이로 손이 닿지 않습니다. 그 간극은 구현 세부가 아니라 RSA가 작동하는 이유입니다. 2048비트 모듈러스를 인수분해하기 어려운 것은 이 툴이 열두 자리에서 멈추는 것과 같은 산술적 이유 때문입니다.

약수 목록은 수의 크기가 아니라 지수에서 자랍니다. 각 지수에 1을 더해 모두 곱하면 개수가 나옵니다. 1024는 2의 10제곱이라 약수가 열한 개이고, 840은 훨씬 작지만 서른두 개입니다. 작은 소인수를 많이 가진 수는 긴 목록을 만들고, 소수는 두 개를 만듭니다.

최대공약수와 최소공배수는 둘의 곱이 두 입력의 곱과 같다는 항등식으로 묶여 있습니다. 알아 둘 값어치가 있는 이유는, 두 입력이 넉넉한 크기여도 큰 수 둘의 최소공배수는 넘칠 수 있다는 뜻이기 때문입니다. 999999937과 999999893은 둘 다 소수라서 최소공배수가 그 곱이고, 배정밀도가 정확히 표현할 수 있는 가장 큰 정수를 한참 넘어섭니다.

자주 묻는 질문

최대 입력은 얼마인가요?

약 10¹²(조)까지입니다. 그 이상은 √n까지의 시행 분할이 느려지고, Number.MAX_SAFE_INTEGER(2⁵³ ≈ 9×10¹⁵)를 넘으면 자바스크립트가 정수 정밀도를 잃습니다. 더 큰 수에는 BigInt와 Pollard's rho가 필요합니다.

왜 큰 수는 약수 목록이 없나요?

CPU 과부하를 막기 위해 약수 스캔은 n < 10⁹로 제한합니다. 소인수분해는 그래도 실행됩니다. 최대 소인수까지 O(√n)이고, 이는 종종 n보다 훨씬 작습니다.

GCD는 어디에 유용한가요?

분수 약분에 씁니다. 252/360 = ?에서 GCD(252, 360) = 36이므로 252/360 = 7/10입니다. 암호학(RSA)과 두 주기가 언제 정렬되는지 결정할 때도 사용합니다.

LCM(a, b) = a × b / GCD(a, b)인가요?

네, 양의 정수에 대해서는 항상 그렇고, 이 도구도 정확히 이 항등식을 사용합니다. 직관적으로 보면 LCM은 a·b에 걸친 모든 소인수의 최고 거듭제곱이고 GCD는 모든 소인수의 최저 거듭제곱이므로, 둘을 곱하면 a × b가 복원됩니다.

관련 도구