프로그래밍 숲

프로그래머스 python 버전(python math 라이브러리 lcm 안되는 문제) 본문

프로그래밍_정보공유/tips

프로그래머스 python 버전(python math 라이브러리 lcm 안되는 문제)

jjscript 2023. 6. 7. 18:06
728x90
반응형

프로그래머스에서 최대공약수, 최소공배수 관련 문제를 풀던 도중에 이런 에러를 맞닥뜨렸습니다.

 

제가 작성한 코드

from math import gcd, lcm

def solution(n, m):
    answer = []
    answer.append(gcd(n, m))
    answer.append(lcm(n, m))
    return answer

발생 에러

Traceback (most recent call last):
  File "/solution_test.py", line 6, in <module>
    from solution import *
  File "/solution.py", line 3, in <module>
    from math import gcd, lcm
ImportError: cannot import name 'lcm' from 'math' (/usr/lib/python3.8/lib-dynload/math.cpython-38-x86_64-linux-gnu.so)

분명히 python 공식 문서를 보고 math 모듈의 lcm 함수가 있다는 것을 확인했는데, 무슨 이유에서인지 실행이 안 됐습니다. 에러 메시지를 살펴보니 위의 에러에서 python 버전이 3.8로 되어 있는 것을 확인할 수 있습니다.

python lcm함수

하지만 python 공식문서를 살펴보니 math.lcm() 함수는 버전 3.9부터 추가되었다고 합니다. 이러한 이유로 프로그래머스에서는 math 모듈의 lcm 함수를 사용할 수 없던 것이었습니다.

 

하지만 gcd()함수는 버전 3.5부터 사용이 가능했기 때문에 gcd 함수만으로 다음과 같이 문제를 해결할 수 있었습니다.

from math import gcd

def solution(n, m):
    answer = []
    answer.append(gcd(n, m))
    answer.append((n * m) / gcd(n, m))
    return answer
728x90
반응형
Comments