python求兩數最小公倍數(leetcode)

求最小公倍數
 Input: 5 7
 輸出: 35
 輾轉相除法:

方法1
def common_multiple(x, y):
    # 獲取最大的數
    if x > y:
        greater = x
    else:
        greater = y

    while True:
        if greater % x == 0 and greater % y == 0:
            lcm = greater
            break
        greater += 1

    return lcm


x, y = input().split(' ')
print(common_multiple(int(x), int(y)))

方法2
"""
最小公倍數 = 兩個整數的乘積/最大公約數
最大公約數可以用輾轉相除法求得
輾轉相除法:
def func(a, b):
    c = a % b
    if c == 0:
        return b
    a, b = b, c
    return func(a, b)
"""
def common_multiple(x, y):
    mul = x * y
    c = x % y
    while c != 0:
        x, y = y, c
        c = x % y

    print(mul // y)


common_multiple(3, 9)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章