python for循环练习_求最大公约数和最小公倍数

"""
输入两个数值:
    求两个数的最大公约数和最小公倍数.

最小公倍数=(num1*num2)/最大公约数
"""

# 2,3
# 2,6

# 1. 输入两个数值: input接收的是字符串类型
num1 = int(input('Num1:'))
num2 = int(input('Num2:'))
# 2. 找出两个数中的最小值
# min_num = min(num1, num2)
min_num = num1 if num1<num2 else num2
# 3. 最大公约数的范围在1~min_num之间;最大公约数就是num1和num2能整除的最大的数;
for i in range(1,min_num+1):  # 1, 2
    # 2%1==0 ; 3%1==0   gys=1
    # 2%2==0   6%2!=0    gys=2
    if num1 % i == 0 and num2 % i == 0:
        # 当循环结束, gys中保存的是最大的约数;
        gys = i
# 4. 最小公倍数
lcm = int((num1*num2)/gys)

print("%s和%s的最大公约数为%s" %(num1, num2, gys))
print("%s和%s的最小公倍数为%s" %(num1, num2, lcm))

猜你喜欢

转载自blog.csdn.net/zcx1203/article/details/81587821