获取两数最大公约数和最简整数比

 

 

"""
用辗转相除法求最大公约数的算法如下:
两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。
比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数。
"""
def gongyue(a, b):
    """
    求最大公约数
    :param a: 第一个数
    :param b: 第二个数
    :return:
    """
    while b != 0:
        temp = a % b
        a, b = b, temp
    return a


def zuijianbi(a, b):
    """
    求最简整数比
    :param a:
    :param b:
    :return:
    """
    bigcommon = gongyue(a, b)
    return a//bigcommon, b//bigcommon


print("最大公约数:", gongyue(1920, 1080))
print("最简整数比:", zuijianbi(1920, 1080))

 

最大公约数: 120
最简整数比: (16, 9)

 

参考自:https://www.jb51.net/article/180284.htm

 

posted @ 2021-03-04 15:25  宝山方圆  阅读(428)  评论(0编辑  收藏  举报