[プログラマレベル2]N個の最小公倍数


📃 問題の説明


N個の最小公倍数 2つの数の最小公倍数(Least Common Multiple)は、2つの入力倍数に共通する最小数です。たとえば、2と7の最小公倍数は14です。拡張定義後、n個の数の最小公倍数は、n個の数の倍数の最小公倍数となる。n個の数字の配列arrを入力すると、これらの数の最小公倍数を返す関数と解法を完了します。 せいげんじょうけん arrは、長さが1または15より大きい配列である。 arrの元素は100以下の自然数である。 I/O例 arrresult[2, 6, 8, 14]168[1, 2, 3]6 [質問元:プログラマー]

👨‍💻 解決策


私の考えは次から次へと広がってきた。 与えられたN個の数の最小公倍数を求めるために、 所定数の共同排水から最小を求める必要がある. 1つの数を決めて、それらの倍数を残りの数で割って、すべて除いて、公倍数です。 候補者を最小限に抑えるには、最大の倍数を残りの数で割って、すべての最小の数を除いて最小の公倍数にします。 大神を踊る n/a.結論 与えられた数の中で最大の倍数を求める。 残りの数を全部割ったら。 その数を最小公倍数にして、重複ゲートから脱出・・ 与えられた数のうち1つが除去されない場合は、次の倍数の除算を繰り返します。 大神を踊る

👨‍💻 ソースコード


def solution(arr): n = 1 arr.sort() while True: temp = arr[-1] * n n += 1 flag = True for a in arr[:-1]: if temp % a != 0: flag = False break if flag: answer = temp break return answer