728x90
# 최대공약수
1. while 문 (작은 수를 1씩 빼가면서 큰 수에 나눔)
gcd = a if a < b else b
def gcd:
while True:
if a%gcd==0 and b%gcd==0:
break
gcd -= 1
return gcd
2. 유클리드 호제법 (나머지 이용)
gcd = a if a < b else b
def gcd(a, b):
while(b):
a, b = b, a%b
gcd = a
return gcd
3. 재귀 함수
def gcd(a,b): # 재귀 함수
return b if (a==0) else gcd(b%a,a)
def gcd(a, b): # 재귀 함수
if b == 0:
return a
return gcd(b, a%b)
4. math 모듈 이용
# math 모듈 이용
from math import gcd
gcd = gcd(a, b)
# 최소공배수
- 앞선 gcd 함수들 이용
def gcd(a, b):
def lcm(a, b):
lcm = (a*b)//gcd(a, b)
return lcm
반응형
'전.py' 카테고리의 다른 글
프로그래머스 K번째 수 (level 1) (0) | 2020.12.29 |
---|---|
프로그래머스 체육복 (level 1) (0) | 2020.12.29 |
프로그래머스 멀쩡한 사각형 (level 2) - 최대공약수 (0) | 2020.12.29 |
프로그래머스 모의고사 (level 1) (0) | 2020.12.29 |
프로그래머스 크레인 인형뽑기 게임(level 1) (0) | 2020.12.28 |