[プログラマレベル1]最大公倍数と最小公倍数


📃 問題の説明


最大公倍数と最小公倍数


[質問元:プログラマー]

👨‍💻 解決策


私はただ単純です.
nとmの最大承諾数を求める時
1からn,mまでのより大きな数、
両方とも分かれた数の中で最大の数を得た.
そして最小公倍数を求めるとき
n,mでもっと大きな数字*2,3,4で...
このように残りの数を乗じて最小公倍数で割る.
しかし
最大公約数を求める場合,ユークリッド号製法を用いてより簡単に解くことができる.

ユークリッドアークほう


2つの自然数(または正式)a,bについて、aをbで割った残りの数をr(ただし、a>b)と呼ぶと、aおよびbの最大公約数はbおよびrの最大公約数に等しい.
この性質に基づいて、bをrの残りのr’で割って、rをr’の残りの過程で割って、残りが0の時、除いた数はaとbの最大公約数です.
詳細:ユークリッドアーク除算の定理
これはユークリッド湖の製法を整理する良い日です.

👨‍💻 ソースコード

def solution(n, m):
    answer = [0]

    temp = 1
    while temp <= max(n, m):
        if n % temp == 0 and m % temp == 0:
            answer[0] = temp
        temp += 1

    temp = m
    while temp % n != 0:
        temp += m
    answer.append(temp)

    return answer

ユークリッドアーク法の使用

def solution(a, b):
    c, d = max(a, b), min(a, b)
    t = 1
    while t > 0:
        t = c % d
        c, d = d, t
    answer = [c, int(a*b/c)]

    return answer