知恵袋の最大公約数・最小公倍数の問題をPythonで解いてみた。

 知恵袋の最大公約数・最小公倍数の問題Pythonで解いてみました。(^_^;

n,125,175の最大公約数が25,最小公倍数が3500をみたす自然数nを求めよ。

 nの範囲は、25≦n≦3500で、あとは、3数のgcdとlcmを求めてチェックするだけです。(^_^;

● GcdAndLcm1.py

# coding: UTF-8
# GcdAndLcm1.py

from functools import reduce
from fractions import gcd

def Gcd(numbers):
    return reduce(gcd,numbers)

def Lcm(numbers):
    return reduce(lambda x,y: (x*y)//gcd(x,y),numbers,1)

def main():
    pass # code goes here
    for n in range(25,3500+1):
        lst=[n,125,175]
        if Gcd(lst)==25 and Lcm(lst)==3500:
            print(n)

if __name__ == '__main__':
    main()

●実行結果

100
500
700
3500

※参考URL
http://d.hatena.ne.jp/rsc96074/20140127/1390834236
RiK0 Tech Temple: Nice functional LCM in Python

Pythonスタートブック

Pythonスタートブック