なぜPython3.4
AtCoderの現在のPythonのバージョンが3.4だから。
また、使用するモジュールが最新の3.7と異なるため。
最大公約数(GCD)
>>> from fractions import gcd
>>> gcd(4,6)
2
>>> gcd(8,12)
4
ちなみに、Python3.7では、mathモジュールに移行されている。
最小公倍数(LCM)
GCDを使って求められる。
>>> from fractions import gcd
>>> x, y = 2, 4; (x * y) // gcd(x, y)
4
>>> x, y = 8, 12; (x * y) // gcd(x, y)
24
リストのLCMを求める
def lcm(a):
from fractions import gcd
x = a[0]
for i in range(1, len(a)):
x = (x * a[i]) // gcd(x, a[i])
return x
a = [3,4,6]
print(lcm(a)) # 実行結果: 12