プログラミングコンテストでは最小公倍数を求める事が必要な出題があります。その場合、関数を使用しますが、python3では最小公倍数を直接求める関数はありません。よって関数が用意されている最大公約数を求めてから、最小公倍数を求める事になります。
たとえば a と b の最小公倍数を求めたい場合は、
(1) a と b の最大公約数 c を、関数 gcd( ) を使って、求める。
(2) (a × b) / c の計算を行えば最小公倍数 d が求まる。
という流れです。
それでは, 実際に a = 4、b = 6として その最小公倍数を求めてみましょう。
(1) 最大公約数を求める:gcd( )
いきなりですが、ここにプログラミングコンテスト上の留意点があります。すなわち使う関数は gcd( ) であることは間違い無いのですが、python3のバージョンによりimportするモジュールが異なるのです!
python 3.5 より前 —> fractions
python 3.5 以降 —> math
となります。
よって、2019/12月現在、例えばAtCoderで使う python3 のバージョンは 3.4.3となっていますので、fractions を使わなければなりません!(mathを用いると無情な RE が返されます。。)
a = 4
b = 6
#python 3.5より前
import fractions
c = fractions.gcd(a, b)
print(c)
# --> 2
#python 3.5以降
import math
c = math.gcd(a, b)
print(c)
# --> 2
くれぐれも気をつけて下さい。。
(2) 最初公倍数を求める:(a * b)// c
d = (a * b)//c #ここでは計算値 d を // を用いて整数としています
print(d)
# --> 12
以上がpython3での最小公倍数(および最大公約数)の求め方になります。