Menu
CoddyTech

Least Common Multiple

2つの正の整数 a と b が与えられます。最小公倍数、つまり a と b の両方で余りなく割り切れる最小の正の整数を返してください。

たとえば、6 の倍数は 6、12、18、24 などで、8 の倍数は 8、16、24 などです。両方のリストに含まれる最初の数は 24 です。

関数

lcm(a: integer, b: integer) → integer
ainteger
最初の正の整数
binteger
2番目の正の整数
戻り値integer
aとbの両方の倍数である最小の正の整数

制約

  • 1 ≤ a ≤ 106
  • 1 ≤ b ≤ 106
  • 答えは符号付き32ビット整数に収まります: lcm(a, b) ≤ 231-1。積 a × b は収まらない場合があります。

例

入力
a = 4b = 6
出力
12
説明
6の倍数は6、12、18から始まり、4の倍数は4、8、12から始まります。両方のリストで最初に現れる数は12です。

lock icon提出時に隠しテスト+15件

challenge icon

発展問題

割り算も余りの計算も一切使わず、引き算と半分にする操作だけで最大公約数を求められますか?

コードをリセット
def lcm(a, b):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

a = 4
b = 6

期待値

12