- 문제 : 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))

+ Recent posts