최대공약수와 최소공배수_프로그래머스_파이썬

  • 나의 풀이
def solution(n, m):
    a = min(n,m)
    b = max(n,m)
    answer = []
    for i in range(a,0,-1):
        if a%i == 0 and b%i ==0:
            answer.append(i)
            break
    for i in range(b, b*a+1):
        if i%a == 0 and i%b ==0:
            answer.append(i)
            break
    return answer

print(solution(3,12))
[3, 12]
  • 다른 사람 풀이
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))
[3, 12]

Comments