최대공약수와 최소공배수 성공출처
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 128 MB 47852 28357 23053 61.089% 문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1 복사
24 18
예제 출력 1 복사
6 72
유클리드 호제법
number = list(map(int, input().split()))
a = number[0]
b = number[1]
gcd=0
lcm=0
def gcd_get(a,b):
while True : # 나머지가 0이 될 때 까지 반복해준다
r = b % a # 큰수를 작은수로 나눈다
if r == 0 : # 나머지가 0이 될때의 작은 수가 최대공약수이다
return a
# 나머지는 작은수로, 작은수는 큰수로 바꿔준다음
b=a
a=r
gcd = gcd_get(a,b)
lcm = gcd *(a//gcd) * (b//gcd)
print(gcd, lcm)
'알고리즘 문제' 카테고리의 다른 글
[Python] boj 10773 "제로" (0) | 2021.10.26 |
---|---|
[Python] 파이썬 백준 boj 11651 '좌표 정렬하기 2' (0) | 2021.10.25 |
[Python] 백준 boj 2839 "설탕 배달" (0) | 2021.10.21 |
[Python] 백준 boj 2941 "크로아티아 알파벳" (0) | 2021.10.21 |
[파이썬] boj 4344 "평균은 넘겠지" - Python (0) | 2021.10.20 |