코딩테스트/기출
[연습문제 / 프로그래머스] 12940번 : 최대공약수와 최소공배수
ydin
2022. 8. 31. 16:13
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12940
- 정답 풀이:
def solution(n, m):
mcd = 0
for i in range(1, max(n,m) + 1):
if n % i == 0 and m % i == 0:
mcd = max(mcd, i)
if mcd == 1:
return [1, n * m]
else:
return [mcd, mcd * (n // mcd) * (m // mcd)]
- 다른 풀이 :
Euclidean Algorithm을 구현한 풀이다
def gcdlcm(a, b):
c, d = max(a, b), min(a, b)
t = 1
while t > 0:
t = c % d
c, d = d, t
answer = [c, int(a*b/c)]
return answer
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(gcdlcm(3,12))