048. 최대공약수 계산기
Easy
바이브코딩
MCPMathAlgorithm
문제 설명
[문제]
두 양의 정수의 최대공약수(GCD)와 최소공배수(LCM)를 계산하는 MCP 서버를 구현한다.
최대공약수(Greatest Common Divisor)는 두 수를 모두 나누어떨어지게 하는 가장 큰 정수다(예: 48과 18의 공약수는 1, 2, 3, 6이고 그중 최대는 6). 최소공배수(Least Common Multiple)는 두 수의 공통 배수 중 가장 작은 양의 정수다(예: 4와 6의 공배수는 12, 24, ...이고 그중 최소는 12).
[구현할 함수]
- gcd(a: int, b: int) -> int
두 양의 정수의 최대공약수를 정수로 돌려준다.
- lcm(a: int, b: int) -> int
두 양의 정수의 최소공배수를 정수로 돌려준다.
[입력·상태]
별도로 유지하는 상태는 없다. a, b는 양의 정수다.
[제약]
- 두 함수 모두 반환 타입은 정수다.
- 관계식: lcm(a, b) = a * b / gcd(a, b).
[힌트]
최대공약수는 유클리드 호제법으로 구할 수 있다(큰 수를 작은 수로 나눈 나머지로 반복). Python·C++·Java 모두 동일 알고리즘으로 구현 가능하다.
[예시]
gcd(10, 5) -> 5
gcd(48, 18) -> 6
lcm(4, 6) -> 12
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.