Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

アルゴリズム。最大公約数。gcd (greatest common divisor) (Python 3: リスト内包表記, max())

使用するライブラリ

なし

Python 3 コード

my_gcd.py

#!/usr/bin/env python3


"""(docstring)
"""


# コードを書く際の縛り。
#
# リスト内包表記を使用する。
# オレオレアルゴリズムで頑張る。


def my_gcd(x, y):
    """(docstring)
    """
    return max([i for i in range(1, y+1) if x % i == 0 and y % i == 0])


if __name__ == '__main__':
    n_list = [[8, 12], [16, 24], [14, 28], [50, 125]]

    for x, y in n_list:
        print('{}{}{}{} {}'.format(x, ' と ', y, ' の最大公約数:', my_gcd(x, y)))

出力

$ python3 my_gcd.py
8 と 12 の最大公約数: 4
16 と 24 の最大公約数: 8
14 と 28 の最大公約数: 14
50 と 125 の最大公約数: 25