본문으로 건너뛰기

최대공약수·최소공배수 계산기

정수 2~20개의 최대공약수, 최소공배수, 전체의 서로소 여부를 확인하세요.

a, b, … → gcd / lcm

정수 입력

데이터는 이 브라우저에만 남습니다.

쉼표, 공백, 세미콜론, 줄바꿈으로 정수 2~20개를 구분하세요. 각 절댓값은 1,000,000,000,000 이하여야 합니다.

정확한 정수 결과

공약수와 공배수

정수를 두 개 이상 입력하고 계산하세요.

최대공약수·최소공배수 계산기 사용 방법

  1. 정수 2~20개를 입력하세요. 공백, 쉼표, 세미콜론, 줄바꿈으로 구분하고 숫자 안에는 천 단위 쉼표를 넣지 마세요.
  2. ‘계산’ 또는 Enter를 누르세요. 음수는 절댓값으로 계산하고 0에는 아래의 명시된 규칙을 적용합니다.
  3. 정확한 최대공약수·최소공배수와 전체의 서로소 여부를 읽으세요. 전체가 서로소라는 것은 입력한 모든 수의 최대공약수가 1이라는 뜻입니다.
  4. 입력을 바꾸면 이전 결과가 즉시 지워집니다. 결과 복사는 세 결과 줄을 내보내며 지우기는 입력, 결과, 오류, 복사 상태를 제거합니다.

최대공약수와 최소공배수 계산 방식

gcd(a,b)는 두 수를 모두 나누는 가장 큰 양의 정수입니다. 유클리드 알고리즘은 두 번째 값이 0이 될 때까지 (a,b)를 (b, a mod b)로 반복해서 바꿉니다.

0이 아닌 수에 대해 lcm(a,b) = |a ÷ gcd(a,b) × b|입니다. 먼저 나누어 중간 정수를 작게 유지합니다. 두 개보다 많으면 목록을 한 쌍씩 순서대로 계산합니다.

부호는 나누어떨어짐에 영향을 주지 않으므로 gcd(−a,b) = gcd(a,b)이고 최소공배수는 0 이상입니다. a ≠ 0이면 gcd(a,0) = |a|입니다. gcd(0,0)은 정의되지 않습니다. 0이 하나라도 있는 목록의 최소공배수는 0입니다.

풀이 예시

반복 주기: 24, 36, 60

24, 36, 60의 최대공약수는 12입니다. 12가 세 수 모두를 나누며 더 큰 양의 공약수는 없습니다. 최소공배수는 모든 입력으로 나누어떨어지는 가장 작은 양수 360입니다. 최대공약수가 1이 아니므로 전체가 서로소는 아닙니다.

음수: −18과 30

부호를 무시하고 18과 30을 사용합니다. 유클리드 알고리즘으로 최대공약수 6을 구하고 |−18 × 30| ÷ 6으로 최소공배수 90을 구합니다. 결과는 0 이상의 정수로 표시합니다.

0과 15, 0과 0 비교

0과 15의 최대공약수는 15, 최소공배수는 0입니다. 0과 0에는 가장 큰 양의 공약수가 없어 ‘정의되지 않음’을 표시합니다. 최소공배수는 여기서 사용하는 관례에 따라 0이며 서로소가 아니라고 표시합니다.

결과 활용 방법

입력 제한과 오류 도움말

자주 묻는 질문

GCD, GCF, HCF는 같은 뜻인가요?

여기서는 같습니다. 모두 모든 입력을 나누는 가장 큰 양의 정수인 최대공약수를 뜻합니다.

음수는 어떻게 처리하나요?

부호가 양의 약수·공배수를 바꾸지 않으므로 절댓값을 사용합니다. 따라서 최대공약수와 최소공배수는 0 이상입니다.

gcd(0,0)은 왜 정의되지 않나요?

모든 양의 정수가 0을 나누므로 두 0을 나누는 가장 큰 양의 정수는 없습니다. a ≠ 0이면 gcd(a,0)=|a|입니다.

최소공배수가 0일 수 있나요?

네. 여기서 쓰는 관례에 따라 입력에 0이 있으면 최소공배수는 0입니다. lcm(a,0)=0을 유지해 반복적인 두 수 계산에도 자연스럽게 적용합니다.

최대공약수가 1이면 모든 쌍이 서로소인가요?

아니요. 모든 수가 공유하는 1보다 큰 인수가 없다는 뜻입니다. 6, 10, 15의 전체 최대공약수는 1이지만 각 쌍에는 공약수가 있습니다.