Algorithm/Python

[programmers]python 12940 최소공배수 최대공약수

beomzh 2024. 5. 31. 14:15
728x90
반응형
# 최대공약수와 최소공배수
# 두 수의 최대공약수와 최소공배수를 반환
# 최대 공약수 공통된 약수중 제일 큰값


def solution(n, m):
    answer = []
    # 최대 공약수는 지수를 활용
    value=min(n,m)
    for i in range(1,value+1):
        if n%i==0 and m%i==0:
            answer.append(i)
    minv=answer[-1]
    n/=minv
    m/=minv
    # 최소 공배수는 나머지와 최대공약수의 곱
    maxv=int(minv*n*m)
    return [minv,maxv]


def solution(n, m):
    answer = []
    # 최대 공약수는 지수를 활용
    value = min(n, m)
    for i in range(value, 0, -1) :
        if n % i == 0 and m % i == 0 :
            answer.append(i)
            break
        
    # 최소 공배수는 나머지와 최대공약수의 곱
    value = max(n, m)
    for i in range(value, value * value) :
        if i % n == 0 and i % m == 0 :
            answer.append(i)
            break
            
    return answer

# print(solution(3,12)) #[3,12]
# print(solution(2,5)) #[1,10]
print(solution(36,48)) # [12,12]
728x90
반응형