题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
参考程序:
m = int(input("请输入m的值:"))
n = int(input("请输入n的值:"))
# 默认m比n大,方便计算。
if m < n:
t = m
m = n
n = t
# m与n成倍数的情况
if(m % n == 0):
x = n
y = m
# m与n不成倍数的情况
else:
# 遍历求取最大公约数
for i in range(1, n):
if m%i==0 and n%i==0:
x = i
# 遍历求取最小公倍数
y = m # 从大的那个数开始遍历
while True:
if y%m == y%n ==0:
break
y += 1
print("最大公因数为:{0},最小公倍数为:{1}".format(int(x),int(y)))
运行结果:
请输入m的值:12
请输入n的值:21
最大公因数为:3,最小公倍数为:84