【Python】math.gcd()で最大公約数を求める!

Pythonのmath.gcd()を使用すると、最大公約数を求めることができます。

math.gcd()とは指定したパラメータの最大公約数を返す関数であり、指定した数値の最大公約数を求めることができます。

しかし、指定できるパラメータはPythonのバージョンによって異なりますので注意してください。

また、math.gcd()だけでなく、numpy.gcd()でも最大公約数を求めることができ、reduce()と組み合わせて使用するとリスト内の要素の最大公約数を求めることができますのでたくさんの数値の中から最大公約数を求めたい場合に便利です。

今回はPythonのmath.gcd()で最大公約数を求める方法について以下の内容で解説していきます。

⚫︎ Python3.8以降のmath.gcd()を使用する場合
⚫︎ Python3.9.1のmath.gcd()を使用する場合

⚫︎ numpy.gcd()で最大公約数を求める方法
⚫︎ Python3.8以降で3つ以上の数値の最大公約数を求める方法
⚫︎ 最小公倍数を求める方法

math.gcd()とは

math.gcd()とは、最大公約数を返す関数であり、

math.gcd()の書き方

math.gcd()の書き方は下記となります。
Pythonのバージョンによって書き方が異なります。

Python3.8以降の場合

Python3.9.1の場合

Python3.8以降の場合はパラメータは2つまで指定できますが、Python3.9.1の場合はパラメータを2つ以上から指定することができます。

math.gcd()のパラメータ

⚫︎ 数字:
最大公約数を求めたい数字を整数型で指定する

math.gcd()のパラメータに数字を指定することで指定した数字の最大公約数を返します。

最大公約数を求めるサンプルコード

最大公約数を求めるサンプルコードを紹介します。

Python3.8以降のmath.gcd()を使用する場合

Python3.8以降のmath.gcd()を使用して、最大公約数を求めてみます。



出力結果

30 50

・math.gcd()で最大公約数を求める
最大公約数 10

math.gcd()によって指定した数字の最大公約数を求めています。

また、Pythonが3.8以降になるのでmath.gcd()のパラメータを2つ指定しています。

Python3.9.1のmath.gcd()を使用する場合

Python3.9.1のmath.gcd()を使用して最大公約数を求めてみます。



出力結果

30, 50, 100

・math.gcd()で最大公約数を求める
最大公約数 10

150 175 200 2500

・math.gcd()で最大公約数を求める
最大公約数 25

math.gcd()によって指定した数字の最大公約数を求めています。

また、Pythonが3.9.1になるのでmath.gcd()のパラメータを2つ以上指定しています。

numpy.gcd()で最大公約数を求める方法

また、math.gcd()だけでなく、numpy.gcd()でも最大公約数を求めることができます。



出力結果

200 300

・numpy.gcd()で最大公約数を求める
100

numpy.gcd()によって、よって指定した数字の最大公約数を求めています。

Python3.8以降で3つ以上の数値の最大公約数を求める方法

Python3.8以降のmath.gcd()ではパラメータを2つまでしか指定できませんでしたが、reduce()と組み合わせて使用すると3つ以上の数値の最大公約数を求めることができます。

reduce()とは高階関数と呼ばれ、引数に指定したリストの各要素に次々と指定した関数を適用する関数となります。



出力結果

[200, 500, 250, 150, 400, 800]

・reduce()でリスト内の最大公約数を求める
最大公約数は 50

reduce()によってリスト内の要素の最大公約数を返しています。

つまり、最大公約数を求めたい数値をリスト化し、reduce()と組み合わせて使用することで、Python3.8以降でも3つ以上の数値の最大公約数を求めることができます。

最小公倍数を求める方法

最小公倍数を求めるには、math.lcm()を使用します。

しかし、math.lcm()はPython3.9.1からでないと使用することができません。



出力結果

30, 50, 60

・math.lcm()で最小公倍数を求める
最小公倍数は 900

math.lcm()によって最小公倍数を返しています。

今回のポイント

math.gcd()で最大公約数を求める

Pythonで最大公約数を求めるにはmath.gcd()を使用する。

⚫︎ math.gcd()はPythonのバージョンによって指定できるパラメータが異なる
(Python3.8以上は2つまでで、Python3.9.1からは2つ以上指定できる)

⚫︎ numpy.gcd()でも最大公約数を求めることができる

⚫︎ reduce()を使用すると、リストの要素内の最大公約数を求めることができる
(Python3.8以降でも3つ以上の数値の最大公約数を求めることが可能)

⚫︎ Pythonで最小数を求めるにはmath.lcm()を使用する
(Python3.9.1からでないと使用することができない)

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し