알고리즘/python
[python/파이썬] 백준 2609 최대공약수와 최소공배수
ㅌㅇㄴ
2022. 2. 12. 01:46
반응형
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1 복사
24 18
예제 출력 1 복사
6
72
[소스 코드]
gcd -> 최대공약수 구하는 함수
: a와 b의 최대공약수는 a%b와 b의 공약수를 구하는 것과 같으므로 b>0인 동안 반복한다.
lcm -> 최소공배수 구하는 함수
: 최소공배수는 a와 b의 곱을 a와 b의 최대 공약수로 나누면 구할 수 있다.
a,b = map(int, input().split())
def gcd(a,b):
while b>0:
a,b = b, a%b
return a
def lcm(a,b):
return a * b // gcd(a,b)
print(gcd(a,b))
print(lcm(a,b))
반응형