Python编程习题(14): 最大公约数和最小公倍数

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:

输入在一行中给出两个正整数M和N(≤1000)。

输出格式:

在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292

输出样例:

73 2044

解答代码: 

m,n = input().split()

m = int(m)
n = int(n)
max_divisor = 0
min_multiple = 0

if m > n:
    num1 = m
    num2 = n
else :
    num1 = n
    num2 = m
    
lim1 = int(num2)
lim2 = int(num1*num2)

for i in range (1,lim1+1):
        if num1 % i == 0 :
            if num2 % i == 0:
                max_divisor = i
            
flag = False
for i in range (num1,lim2+1):
    if flag == False:
        if i % num1 == 0:
            if i % num2 == 0:
                min_multiple = i
                flag = True

print("{0:d} {1:d}".format(max_divisor,min_multiple))