Python 求最大公约数
题目要求
求最大公约最简单快速的方式还是欧几里得算法
原理:
已知m、n两个不全为0的非负整数
gcd(m,n)
1:如果n=0,返回m作为结果,否则进入2
2:m对n取余,余数赋值给r
3:将n赋值给m,r赋值给n,返回1
参考实现
def gcd(m, n): ''' 求最大公约数 :param m: :param n: :return:最大公约数 ''' while m % n != 0: oldm, oldn = m, n m, n = oldn, oldm % oldn return n
测试
print(gcd(6,8)) print(gcd(12,8)) 2 4