알고리즘 풀이/프로그래머스

[Level1] 최대공약수와 최소공배수

mhko411 2021. 1. 22. 22:13
728x90

문제

입력된 두 정수에 대한 최대공약수와 최소공배수를 출력한다.

 

입력

[3, 12]

 

출력

[3, 12]


최소공배수와 최대공약수의 의미대로 구현하였다.

 

python

def solution(n, m):
    answer = []
    
    min_num=min(n,m)
    gcd=0
    for i in range(1,min_num+1):
        if n%i==0 and m%i==0:
            if gcd<i:
                gcd=i
    lcm=9999999
    for i in range(1,n*m+1):
        if i%n==0 and i%m==0:
            if lcm>i:
                lcm=i
    answer.append(gcd)
    answer.append(lcm)
    
    return answer

 

다른사람 풀이

def solution(a, b):
    answer = []
    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