최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요.
배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다.
예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다.
- 내 풀이
from fractions import gcd
def gcdlcm(a, b):
return [gcd(a,b), a*b/gcd(a,b)]
print(gcdlcm(3,12))
- 다른 사람 풀이
def gcdlcm(a, b):
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
소감
- 최대공약수, 최소공배수 문제의 경우, 수학적 접근이 미숙해서 결국 검색으로 찾은 gcd 모듈을 사용하였다.
- 모듈에 의존하기보다는 코드가 길어지더라도 원리를 알고 직접 풀어보는 시간을 갖는 것이 중요한 것 같다.