寻找最大公约数、最小公倍数(Python举例)

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))

猜你喜欢

转载自blog.csdn.net/u014708644/article/details/121311340