반응형

최대공약수와 최소공배수

-풀이

def solution(n, m):
    answer = []
    answer2 = []
    for i in range(1, n+1):
        if n % i == 0 and m % i == 0:
            answer.append(i)
    return [max(answer),(n * m) / max(answer)]

-풀이 설명

i에 1~n 만큼 반복문을 돌리면서 만약 n을 i로 나눈 나머지 값이0이고, m을 i로 나눈 나머지 값이 0이면,

answer에 i값을 추가해주어 공통된 약수를 구한다. 이후 max함수를 이용해 최대공약수를 구하고, n과 m을 곱한 값에 최대공약수를 나누면 최소공배수를 구할 수 있다.

Ps. gcdlcm함수를 이용하여 푸는 방법도 있다.

+ Recent posts