直接上代码了,实现很简单,有更好的办法希望可以交流 (每个函数可以输入多个参数,我是以3个为例)。
def hcf(*x): #计算最大公约数
smaller=min(x)
for i in reversed(range(1,smaller+1)):
if list(filter(lambda j: j%i!=0,x)) == []:
return i
def lcm(*x): #计算最小公倍数
greater=max(x)
while True:
if list(filter(lambda i: greater%i!=0,x)) == []:
return greater
greater+=1
num1=int(input("输入第一个数字: "))
num2=int(input("输入第二个数字: "))
num3=int(input("输入第三个数字: "))
print( num1,"、", num2,"和", num3,"的最大公约数为:", hcf(num1, num2, num3))
print( num1,"、", num2,"和", num3,"的最小公倍数为:", lcm(num1, num2, num3))
输入第一个数字: 2
输入第二个数字: 4
输入第三个数字: 8
2 、 4 和 8 的最大公约数为: 2
2 、 4 和 8 的最小公倍数为: 8