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)

运行结果如下:

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

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

  • 15
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值