[프로그래머스] 파이썬 코딩테스트 연습 LV1(최대공약수와 최소공배수)

728x90

1. 최대공약수와 최소공배수

 

문제 

 

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

 

내 풀이

def solution(n, m):
    answer = []

    for i in range(min(n,m),0,-1):
        if (n % i == 0) and (m % i == 0): # 최대공약수
            answer.append(i)
            break
            
    for i in range(max(n,m),n*m+1):
        if i%n == 0 and i%m == 0:   # 최소공배수
            answer.append(i)
            break
                    
    return answer

append(): 리스트에 새로운 요소를 추가할 때 사용

  • list.append(object)

 

파이썬에는 math 라이브러리에 최대공약수와 최소공배수를 반환해주는 gcd(), lcm() 함수가 존재한다.

https://devmath.tistory.com/63

 

[파이썬] 최대공약수 / 최소공배수

최대공약수 최대공약수(gcd, greatest common divisor)란? 0이 아닌 두 개 이상의 정수의 공통되는 약수 중에서 가장 큰 수이다. 따라서 두 정수 a와 b의 최대공약수는 a의 약수인 동시에 b의 약수인 수, 즉

devmath.tistory.com

 

728x90