1.算法思想:
输入两个数m,n,求两个数的最大公因数和最小公倍数。
最大公约数:定义一个变量i,令其等于m,n中较小的数,再用m,n分别对i求余数,若两个余数都等于零,则i为最大公约数,若有余数不为零,令i-1,再次求余,直到余数都为0。
最小公倍数:定义一个变量i,令其等于m,n中较大的数,再用i对m,n分别求余数,若两个余数都等于零,则i为最小公倍数,若有余数不为零,令i+1,再次求余,直到余数都为0。
Python代码:
def greatest(m, n):
i = n if n < m else m
while i >= 1:
if m % i == 0 and n % i == 0:
return i
i -= 1
def smallest(m, n):
i = m if m > n else n
while 1:
if i % m == 0 and i % n == 0:
return i
break
i += 1
m = int(input('请输入第一个数:'))
n = int(input('请输入第二个数:'))
maxNum = greatest(m, n)
minNum = smallest(m, n)
print('最大公因数为:' + str(maxNum))
print('最小公倍数为:' + str(minNum))