python実戦24は2つの数の最小公倍数を求める.

4884 ワード

タイトル内容:
2つの正の整数num 1とnum 2(500を超えない)を入力し、それらの最小公倍数を求めて出力します.
最小公倍数を求める関数をlcmと定義し,プログラム主体を以下のように与えた.
num1=int(input(""))
num2=int(input(""))
print(lcm(num1,num2))

hcf関数の定義を補足してください.
入力形式:
合計2行で、各行に500を超えない正の整数を入力します.
出力フォーマット:
1行を共有し、正の整数を出力します.
サンプルを入力:
4 6
出力サンプル:
12
My answerの考え方1:最小公倍数=2数の積/最大公約数、上の問題を通じて最大公約数を求めて、それでは最小公倍数は更に1つの公式をプラスして得ます
def lcm(a, b):
    for i in range(min(a,b),0,-1):
        if a % i ==0 and b % i == 0:
            return a*b//i

num1 = int(input(""))
num2 = int(input(""))
print(lcm(num1, num2))

構想の2:愚かな方法、区間を遍歴します:大きいあの数から2つの数の積まで
def lcm(a, b):
    for i in range(max(a, b), a * b + 1):
        if i % a == 0 and i % b == 0:
            return i

num1 = int(input(""))
num2 = int(input(""))
print(lcm(num1, num2))