求兩個正整數的最大公約數和最小公倍數
# 求兩個正整數的最大公約數和最小公倍數
# 求最大公約數
def gys(a, b):
if a < b:
a, b = b, a # 保證a>b
while b != 0:
tem = a % b # 求餘數
a = b # 交換後再次求餘數
b = tem # 餘數爲0時跳出
return a # 餘數爲0時返回除數即爲最大公約數
# 求最小公倍數
def gbs(a, b):
n = (a * b) / gys(a, b) # 兩數之積除以最大公約數可得最小公倍數
return n
c = int(input("請輸入第一個數:"))
d = int(input("請輸入第二個數:"))
print("{0},{1}的最大公約數是:{2};最小公倍數是:{3} ".format(c, d, gys(c, d), gbs(c, d)))
運行結果
請輸入第一個數:35
請輸入第二個數:21
35,21的最大公約數是:7;最小公倍數是:105.0