简述输入两个正整数m和n,求其最大公约数和最小公倍数 ?
参考答案:
要求两个正整数m和n的最大公约数(GCD)和最小公倍数(LCM),我们可以使用以下的方法:
- 最大公约数(GCD)
最大公约数可以使用欧几里得算法(也称为辗转相除法)来求解。这个算法基于一个原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。
欧几里得算法的Python实现如下:
def gcd(m, n):
while n != 0:
m, n = n, m % n
return m
- 最小公倍数(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。