switch9’s blog

地球のみなさん、こんにちは

Pythonで最大公約数と最小公倍数を求める関数を書いてみる

練習がてらに。

# coding: utf-8

def dai(var1,var2):
    if var1>var2:
        varL=var1
        varS=var2
    else:
        varL=var2
        varS=var1
    
    diff=varL-varS
    while(True):
        if diff<1:
            break
        varL=diff
        diff=varL-varS

    if diff==0:
        return varL
    else:
        return -1      


def sho(var1,var2):
    varDai=dai(var1,var2)
    if varDai==-1:
        varSho=var1*var2
    else:
        varSho=var1*var2/varDai

    return varSho

daiが最大公約数、shoが最小公倍数の関数。
最小公倍数の求め方は、
 ・最小公倍数(これを求めたい)をS
 ・最大公約数をD
 ・計算したい値を、AとB
とすると、S=A*B/Dで求められる(らしい)。
引数が3つ以上の場合は、どうするんだろう。今後の課題。