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 @   晓枫的春天  阅读(144)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2022-06-24 Flink 增量窗口聚合函数
点击右上角即可分享
微信分享提示