第18题:逆解最大公约数与最小公倍数

def is_max_divisor(a,b,c): #a是最大公因数 b&c是两个输入的数
    min_one = min(b,c)
    for i in range(a+1,min_one+1):
        if b % i == 0 and c % i == 0:
            return False
    return True
def is_min_mul(a,b,c): #a是最小公倍数, b&c是两个输入的数
    max_one = max(b,c)
    for i in range(max_one, a):
        if i % b == 0 and i % c == 0:
            return False
    return True
def middle2(common_divisor, max_mul):
    a = max_mul // common_divisor
    sum = 2*max_mul
    for i in range(1,a+1):
        for j in range(1,a+1):
            if is_max_divisor(common_divisor, common_divisor * i, common_divisor * j) and is_min_mul(max_mul,common_divisor * i, common_divisor * j):
                if sum > common_divisor*(i+j):
                    sum = common_divisor*(i+j)
                    a1 = common_divisor * i
                    a2 = common_divisor * j
    empty_list = []
    empty_list.append(a1)
    empty_list.append(a2)
    return empty_list

a = middle2(a,b)
print(' '.join(str(i) for i in a))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值