ABC148 C - Snack

備忘録

問題

atcoder.jp

回答

"use strict"
function Main(input) {
  input = input.trim().split(' ').map(Number);
  const A = input[0];
  const B = input[1];
  let ret = 0;
 
  for(let i=1; i<=B;i++){
    let tmp = A * i;
    if(tmp%B === 0){
      ret = tmp;
      break;
    }
  }
 
  console.log(ret);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));

考え方

参加者がA人、B人、どちらの場合でも配り切れるお菓子の最小値(X)を算出する。
AでもBでも配り切れるXなので、ABの最小公倍数であるといえる。
そのため、A * i(1≦i≦B)を1から順にBで割り切れるか否かを判定し、
割り切れる場合には公倍数であるため、一番初め(最小値)を出力する。