[프로그래머스] 최대공약수와 최소공배수 구하기

cheeeese·2022년 3월 7일
0

코딩테스트 연습

목록 보기
70/151
post-thumbnail

📖 문제

https://programmers.co.kr/learn/courses/30/lessons/12940

💻 내 코드

def solution(n, m):
    
    m1=max(n, m)
    n1=min(n, m)
    
    while n1:
        m1, n1 = n1, m1%n1
            
    
    return [m1, int(n * m / m1)]

💡 풀이

  • 유클리드 호제법 이용
  • 나머지가 0이 될 때까지 큰 수를 작은수로 나눈다
  • 나머지가 0이 됐을 때, 마지막 계산에서 나누는 수로 사용된 수가 최대공약수가 된다
  • 최소공배수: n과 m을 곱한 뒤 최대공약수로 나누어주면 된다

0개의 댓글