Python用函数求两个数的最大公约数和最小公倍数

方法一:

​
def fun(m, n):
    '''
    编写函数输入两个数m和n,分别输出这两个数的最大公约数和最小公倍数
    :param m: 输入的第一个数
    :param n: 输入的第二个数
    :return: 返回最大公约数和最小公倍数
    '''
    num1 = 1
    for i in range(1, m+1):
        if m % i == 0 and n % i == 0:
            num1 = i
    num2 = (m/num1) * (n/num1)*num1
    #print('最大公约数{}和最小公倍数{:.0f}'.format(num1,num2))
    return ('最大公约数{}和最小公倍数{:.0f}'.format(num1,num2))
print(fun(5,7))

​

运行结果如下:

方法二:

def step1(m,n):
    min_val = m
    if min_val > n:
        min_val = n

    r1 = 1  # 最大公约数是r1
    for i in range(2, min_val + 1):
        if m % i == 0 and n % i == 0:
            r1 = i
    return r1

def step2(m,n):
    max_val = m
    if max_val < n:
        max_val = n
    r2 = m * n
    for j in range(max_val, m * n + 1):
        if j % n == 0 and j % m == 0:
            r2 = j
            break
    return r2

def function(m, n):
    return step1(m,n), step2(m,n)

r = function(5, 7)
print(r)

运行结果如下:

以上是我自己的简介及解法,刚刚入门不久,有问题可以私聊我,看见了会及时回复。

如果过程有点问题的还请见谅,谢谢大家了。