欧几里得算法(辗转相除法)-- 计算两个数的最大公约数

zylyehuo / 2023-08-19 / 原文

# -*- coding: utf-8 -*-

# 递归
def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)


print(gcd(12, 16))


# 非递归
def gcd2(a, b):
    while b > 0:
        r = a % b
        a = b
        b = r
    return a


print(gcd2(12, 16))