-
[준비운동 PART1. 튼튼한 기본기] 최대공약수와 최소공배수(2609번)🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/💛 백준 2021. 7. 1. 23:47
1. 문제 설명
https://www.acmicpc.net/problem/2609
2. 나의 풀이
a, b = map(int, input().split()) # 유클리드 호제법, 최대공약수 구하기 def GCD(x, y): while(y): x,y = y, x%y return x # 최소공배수 구하기 def LCM(x, y): result = (x*y)//GCD(x,y) return result print(GCD(a, b)) print(LCM(a, b))
유클리드 호제법이란?
x, y의 최대공약수는 y, r의 최대공약수와 같다는 것을 이용한 방법이다. (x%y = r)
즉, 계속해서 x에 y를 대입하고 y에는 r(x%y)을 대입하다보면,
언젠가는 r(x%y)이 0일 때가 있다.
나머지의 값이 0일 때의 y값이 최대공약수이다.
최소공배수는 x*y를 최대공약수로 나눈 몫이다.
그냥 풀면 시간초과가 나고 유클리드 호제법을 사용해야 통과한다!
'🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > 💛 백준' 카테고리의 다른 글
[준비운동 PART1. 튼튼한 기본기] 소수 찾기(1978번) (0) 2021.07.02 [준비운동 PART1. 튼튼한 기본기] 소수(2581번) (0) 2021.07.02 [준비운동 PART1. 튼튼한 기본기] 일곱난쟁이(2309번) (0) 2021.07.01 [준비운동 PART1. 튼튼한 기본기] 지능형 기차 2(2460번) (0) 2021.07.01 [준비운동 PART1. 튼튼한 기본기] 피보나치 수 5(10870번) (0) 2021.07.01