欧几里得算法(辗转相除法)-- 计算两个数的最大公约数
# -*- 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))