a를 b로 나눈 나머지를 r이라 하면 a와 b의 최대공약수는 b와 r의 최대공약수와 같다는 성질을 이용합니다. 나머지가 0이 될 때까지 나눗셈을 반복하면 마지막에 나눈 수가 최대공약수입니다. 예) 1071 = 462×2 + 147, 462 = 147×3 + 21, 147 = 21×7 + 0 이므로 최대공약수는 21입니다.
최소공배수는 어떻게 구하나요?
두 수의 곱은 최대공약수와 최소공배수의 곱과 같으므로, 최소공배수 = 두 수의 곱 ÷ 최대공약수입니다. 세 수 이상은 앞의 결과와 다음 수의 최소공배수를 차례로 구합니다. 소인수분해로 구할 때는 최대공약수는 공통 소인수의 가장 작은 지수, 최소공배수는 모든 소인수의 가장 큰 지수를 곱합니다.
서로소란?
최대공약수가 1인 수들을 서로소라고 합니다. 세 수 이상일 때는 전체의 최대공약수가 1이어도 어떤 두 수는 공약수를 가질 수 있어서(예: 6, 10, 15), 이 계산기는 모든 쌍이 서로소인지도 따로 보여줍니다. 1은 모든 수와 서로소입니다.
0이나 음수를 넣으면 어떻게 되나요?
음수는 부호를 떼고 절댓값으로 계산합니다. 0은 모든 수의 배수이므로 최대공약수 계산에서는 0을 넣어도 나머지 수의 최대공약수가 그대로 나오지만(모두 0이면 계산 불가), 최소공배수는 구하지 않습니다.
얼마나 큰 수까지 되나요?
절댓값 1000조(10¹⁵)까지의 정수를 최대 20개까지 넣을 수 있습니다. BigInt로 계산하므로 최소공배수가 수백 자리가 되어도 반올림 오차가 없고, 큰 수의 소인수분해에는 밀러-라빈 소수 판정과 폴라드 로 알고리즘을 씁니다.