[Algorithm] 최대공약수(GCD)와 최대공배수(LCM) 구하기 : 유클리드 호제법

sally·2021년 7월 6일
0

최대공약수 GCD

두 자연수의 공통된 약수 중 가장 큰 수

최소공배수 LCM

두 자연수의 공통된 배수 중 가장 작은 수
최소 공배수 = A * B / A와B의 최수공약수

유클리드 호제법

유클리드 호제법은 최대공약수를 구하는 알고리즘이다.

2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다.

코드

def gcd(a,b):
    while(b != 0):
        r = a % b
        a = b
        b = r
    return a
    
def lcm(a,b):
	return a * b / gcd(a,b)

출처
유클리드 호제법

profile
Believe you can, then you will✨

0개의 댓글