python 求最大公约数和最小公倍数

2019-06-02  本文已影响0人  吃鱼喵了个鱼
求两个数的最大公约数和最小公倍数
# 定义一个函数
def divisor(x, y):
    # 获取最小值
    if x > y:
        small = y
    else:
        small = x

    for i in range(1, small + 1):
        if ((x % i == 0) and (y % i == 0)):
            a = i
    b = a * (x // a) * (y // a)
    print(x, '和', y, '的最大公约数为:{}'.format(a))
    print(x, '和', y, '的最小公倍数为:{}'.format(b))

# 调用greast_common_divisor(num1,num2)函数
divisor(int(input('input x:')), int(input('input y:')))
求三个数的最大公约数和最小公倍数
def gcd(a,b,c):
    small = min(a,b,c)
    for  i in range(1,small + 1):
        if a % i == 0 and b % i == 0 and c % i == 0:
            m = i
    q = m * (a // m) * (b // m) * (c // m)
    print('最大公约数为{}'.format(m))
    print('最小公倍数为{}'.format(q))

while True:
    try:
        num1 = int(input('请输入第一个正数:'))
        num2 = int(input('请输入第二个正数:'))
        num3 = int(input('请输入第三个正数:'))
        if num1 <= 0 or num2 <= 0 or num3 <= 0:
            continue
    except ValueError:
        continue
    gcd(num1,num2,num3)
    break
上一篇下一篇

猜你喜欢

热点阅读