辗转相除法求公因数再求最小公倍数

img


我按照书上的方法结果出bug,看不出来怎么修改,请各位帮忙改一下,现在只能输出第一个print

以下内容部分参考ChatGPT模型:


代码如下:

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)
        
def lcm(a, b):
    return a * b // gcd(a, b)
    
# 示例
a = 12
b = 18
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))

思路:

  1. 定义一个求最大公约数的函数 gcd,使用辗转相除法实现。
  2. 定义一个求最小公倍数的函数 lcm,使用公式 a * b // gcd(a, b) 实现。
  3. 输入两个数,调用 gcdlcm 函数,输出结果。

注意点:

  1. lcm 函数中,需要使用整除符号 //,因为普通的除法 / 会得到一个浮点数,而我们需要得到一个整数。
  2. 在调用 lcm 函数时,需要注意顺序,因为最小公倍数是两个数的乘积除以最大公约数,所以先求最大公约数再求最小公倍数。

如果我的建议对您有帮助、请点击采纳、祝您生活愉快