跳到主要内容

简述输入两个正整数m和n,求其最大公约数和最小公倍数 ?

参考答案:

要求两个正整数m和n的最大公约数(GCD)和最小公倍数(LCM),我们可以使用以下的方法:

  1. 最大公约数(GCD)

最大公约数可以使用欧几里得算法(也称为辗转相除法)来求解。这个算法基于一个原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。

欧几里得算法的Python实现如下:

def gcd(m, n):
    while n != 0:
        m, n = n, m % n
    return m
  1. 最小公倍数(LCM)

最小公倍数可以通过两个数的乘积除以它们的最大公约数来得到。这是因为两个数的乘积等于它们的最大公约数和最小公倍数的乘积。

最小公倍数的Python实现如下:

def lcm(m, n):
    return m * n // gcd(m, n)

所以,如果你有两个正整数m和n,你可以使用上述两个函数来求它们的最大公约数和最小公倍数。例如:

m = 48
n = 18

print("最大公约数(GCD)是:", gcd(m, n))
print("最小公倍数(LCM)是:", lcm(m, n))

这将输出:

最大公约数(GCD)是: 6
最小公倍数(LCM)是: 144

这意味着48和18的最大公约数是6,最小公倍数是144。