今回はhmathで使用されているgcd(list), lcm(list)の計算方法をご紹介します。
gcdは最小公倍数を表し、
lcmは最大公約数を表します。
プログラム
hmath内では次のプログラムで計算しています。
gcd_lcm.py
def gcd(*args):
if len(args) <= 1:
return args[0]
n, k, *others = args
if k > n:
n, k = k, n
while k != 0:
k, n = n % k, k
return gcd(n, *others)
def lcm(*args):
args_max = max(args)
n = 1
while True:
for k in args:
if args_max * n % k != 0:
n += 1
break
else:
return args_max * n
最後まで見ていだきありがとうございました。
ぜひ活用してみてください。