python问题,如何解决??

本题要求编写一个函数,求两个正整数的最大公约数和最小公倍数。

函数接口定义:
def gys(n,m)

n 和 m都是用户传入的参数。 函数须返回n 和 m 的最大公约数,最小公倍数

裁判测试程序样例:
n=int(input())
m= int(input())
p=n*m
gys1= gys(n,m)
print("最大公约数是{},最小公倍数是{}".format(gys1,int(p/gys1)))
输入样例:
18
12
输出样例:
最大公约数是6,最小公倍数是36

def gys(n, m):
    if n > m:  # 确定较小和较大的数
        n, m = m, n
    for i in range(n, 0, -1):
        if n % i == 0 and m % i == 0:
            gys = i  # 求最大公约数
            break
    else:
        gys = 0  # 0表示没有公约数
    lcm = n * m // gys  # 求最小公倍数
    return gys, lcm

n = int(input())
m = int(input())
gys1, lcm1 = gys(n, m)
print("最大公约数是{},最小公倍数是{}".format(gys1, lcm1))

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^