Algorithm/프로그래머스 연습 문제
프로그래머스 / 코딩 테스트 / 최대공약수와 최소공배수
Forgotten One
2020. 12. 24. 10:09
문제 설명

문제 해결
math 모듈을 import 하여 간단하게 풀 수 있다.
import math
def solve(n,m):
return [math.gcd(n,m), n * m / math.gcd(n,m)]
def solution(n, m):
answer = solve(n,m)
return answer
두 수의 최대공약수를 구하는 방법이 무엇이 있을까 찾아봤고 유클리드 호제법을 발견했다.
유클리드 호제법 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란
ko.wikipedia.org
최대 공약수를 구하는 알고리즘을 찾아 직접 구현하여 풀어봤다.
def gcd(n,m):
if n < m:
t = m
m = n
n = t
t = m
while n % m != 0:
t = n % m
n = m
m = t
return t
def solve(n,m):
return [gcd(n,m), n * m / gcd(n,m)]
def solution(n, m):
answer = solve(n,m)
return answer