최대공약수 구하는 알고리즘1

# 최대공약수 구하는 알고리즘
# 입력:a, b
#출력: a와 b의 최대공약수

def gcd(a, b):
    i = min(a, b) # 두 수 중에서 최소값을 구하는 파이썬 함수
    while True:
        if a % i == 0 and b % i == 0: # 나누어 떨어지면 i로 리턴
            return i
        i = i - 1 # 나누어 떨어지지 않으면 -1 시켜서 나누어 떨어지는 수 찾음


print(gcd(3, 6))
print(gcd(60, 24))

 

실행 결과

 

최대공약수 구하는 알고리즘2

def gcd2(a, b):
    if b == 0: # 종료 조건
        return a
    return gcd2(b, a % b) # 좀 더 작은 값으로 자기 자신을 호출

print(gcd2(3, 6))
print(gcd2(60, 24))

 

실행 결과

+ Recent posts