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

 

posted @ 2023-06-24 08:07  晓枫的春天  阅读(87)  评论(0编辑  收藏  举报