~ / calculator / gcd-lcm-calculator

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

숫자를 쉼표나 띄어쓰기로 나눠 넣으세요. 2개부터 20개까지 한 번에 계산하고 풀이 과정도 보여 드려요.

광고
광고
input
result
결과
-
광고

사용법

  1. 자연수를 쉼표(,)나 띄어쓰기로 나눠 넣어요. 2개부터 20개까지, 15자리 수까지 계산해요.
  2. 최대공약수와 최소공배수, 각 수의 소인수분해, 공약수 목록이 바로 나와요.
  3. 아래 풀이에서 소인수분해 방법, 학교에서 배우는 공통 나눗셈(사다리), 두 수일 때 유클리드 호제법 과정을 확인하세요.

기본 개념

용어뜻12와 18의 예
약수어떤 수를 나누어떨어지게 하는 수12: 1, 2, 3, 4, 6, 12
공약수여러 수에 공통인 약수1, 2, 3, 6
최대공약수 (GCD)공약수 중 가장 큰 수6
공배수여러 수에 공통인 배수36, 72, 108, …
최소공배수 (LCM)공배수 중 가장 작은 수36
서로소최대공약수가 1인 수들8과 15

계산 방법 3가지

① 소인수분해

각 수를 소수의 곱으로 나타내요. 12 = 2² × 3, 18 = 2 × 3²이면 공통 소인수 2와 3을 작은 지수로 곱한 2 × 3 = 6이 최대공약수, 나온 소인수를 모두 큰 지수로 곱한 2² × 3² = 36이 최소공배수예요.

② 공통 나눗셈(사다리)

수를 나란히 쓰고 모두 나눠지는 소수로 계속 나눠요. 더 이상 함께 나눠지지 않으면 멈추고, 왼쪽에 쓴 수를 모두 곱하면 최대공약수, 왼쪽 수와 맨 아래 남은 수까지 모두 곱하면 최소공배수예요. 초등·중학교 교과서에서 가장 많이 쓰는 방법이에요.

③ 유클리드 호제법

공식은 gcd(a, b) = gcd(b, a mod b), 나머지가 0이 되면 그때 나눈 수가 최대공약수예요. 수가 커도 몇 단계면 끝나서 컴퓨터도 이 방법을 써요. 최소공배수는 lcm(a, b) = a × b ÷ gcd(a, b)로 구해요.

예시 계산 3가지

수풀이최대공약수 · 최소공배수
① 24, 36, 6024 = 2³ × 3, 36 = 2² × 3², 60 = 2² × 3 × 5 → 공통 2² × 3, 전체 2³ × 3² × 512 · 360
② 84, 126사다리: 2 ) 84 126 → 3 ) 42 63 → 7 ) 14 21 → 2 3 (서로소)2 × 3 × 7 = 42 · 42 × 2 × 3 = 252
③ 1071, 10291071 = 1029 × 1 + 42 → 1029 = 42 × 24 + 21 → 42 = 21 × 2 + 021 · 1071 × 1029 ÷ 21 = 52,479

문장제: 최대공약수일까, 최소공배수일까

문제에 나오는 말쓰는 것예
"가능한 한 많은 사람에게 똑같이 나누기", "가장 큰 정사각형으로 자르기"최대공약수사탕 24개·초콜릿 36개를 남김없이 똑같이 나눌 최대 인원 → 12명
"동시에 다시 출발", "처음으로 다시 만나는", "가장 작은 정사각형 만들기"최소공배수12분·18분 간격 버스가 다시 동시에 오는 때 → 36분 뒤

타일 문제도 같아요. 가로 84cm·세로 126cm 벽에 같은 크기 정사각형 타일을 빈틈없이 붙일 때 가장 큰 타일 한 변은 최대공약수 42cm, 필요한 타일은 (84 ÷ 42) × (126 ÷ 42) = 6장이에요.

알아 두면 좋은 성질

소인수분해를 빨리 하는 나눗셈 판별법

나누는 수나누어떨어지는 조건예
2일의 자리가 짝수126 → 6
3각 자리 숫자 합이 3의 배수1071 → 1+0+7+1 = 9
4끝 두 자리가 4의 배수1,036 → 36
5일의 자리가 0 또는 560, 125
9각 자리 숫자 합이 9의 배수1071 → 9
11홀수째 자리 합과 짝수째 자리 합의 차가 11의 배수(0 포함)1,331 → (1+3) − (3+1) = 0
광고

약수 개수 구하는 공식

N = pa × qb × rc로 소인수분해되면 약수 개수는 (a + 1) × (b + 1) × (c + 1)이에요. 360 = 2³ × 3² × 5라서 (3 + 1) × (2 + 1) × (1 + 1) = 24개예요. 공약수 개수는 최대공약수의 약수 개수와 같아서, 12와 18의 공약수는 최대공약수 6 = 2 × 3의 약수 2 × 2 = 4개(1, 2, 3, 6)예요.

활용 문제 풀이

유클리드 호제법이 빠른 이유

나머지는 항상 나누는 수보다 작아서, 두 단계마다 수가 절반 아래로 줄어요. 그래서 15자리 수라도 수십 단계 안에 끝나요. 반대로 약수를 하나씩 찾는 방법은 수가 커질수록 시간이 크게 늘어요.

프로그래밍에서도 같은 원리로 한 줄이면 돼요. 자바스크립트라면 const gcd = (a, b) => b ? gcd(b, a % b) : a;, 최소공배수는 a / gcd(a, b) * b예요. 곱하기 전에 먼저 나누면 큰 수에서 넘침(overflow)을 줄일 수 있어요.

결과 읽는 법

광고
광고

흔한 실수

BigInt로 계산해 15자리 수도 정확해요. 입력값은 브라우저 밖으로 나가지 않아요.

자주 묻는 질문

최대공약수와 최소공배수는 어떻게 구하나요?
각 수를 소인수분해해서 공통 소인수를 가장 작은 지수로 곱하면 최대공약수, 나온 모든 소인수를 가장 큰 지수로 곱하면 최소공배수예요. 12와 18이면 최대공약수 6, 최소공배수 36이에요.
세 수의 최소공배수도 되나요?
네. 숫자를 20개까지 넣을 수 있어요. 앞의 두 수의 최소공배수를 구하고 그 결과와 다음 수의 최소공배수를 구하는 식으로 계산해요. 24, 36, 60의 최소공배수는 360이에요.
서로소가 뭔가요?
최대공약수가 1인 수들이에요. 8과 15처럼 1 말고는 함께 나누는 수가 없어요. 서로소인 두 수의 최소공배수는 두 수를 곱한 값과 같아요.
최소공배수를 빨리 구하는 공식이 있나요?
두 수라면 최소공배수 = 두 수의 곱 ÷ 최대공약수예요. 12 × 18 = 216을 최대공약수 6으로 나누면 36이 나와요. 세 수 이상에는 이 공식을 한 번에 쓰면 틀려요.
소수(素數)도 판별되나요?
소인수분해 결과가 자기 자신 하나뿐이면 소수예요. 예를 들어 97을 넣으면 97 = 97로 나와 소수라는 걸 알 수 있어요.

이 도구와 함께 보면 좋은 글

관련 도구

광고

더 둘러보기

🧮 계산 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →