python代码 最大公约和最小公倍数数计算?

从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(提示:用
辗转相除法求最大公约数,用两数乘积除以最大公约数求得最小公倍数)

第1个回答  2020-03-31
1最大公约数
from functools import reduce

def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret

def gcd(*args):
numbers = []
numbers.extend(spread(list(args)))

def _gcd(x, y):
return x if not y else gcd(y, x % y)

return reduce((lambda x, y: _gcd(x, y)), numbers)
2最小公倍数
from functools import reduce

def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret

def lcm(*args):
numbers = []
numbers.extend(spread(list(args)))

def _gcd(x, y):
return x if not y else _gcd(y, x % y)

def _lcm(x, y):
return x * y / _gcd(x, y)

return reduce((lambda x, y: _lcm(x, y)), numbers)本回答被提问者和网友采纳
相似回答