TIL_최대공약수/최소공배수

VonBielefeld·2023년 12월 4일
0

TIL

목록 보기
23/32

예시 60 / 48

최대공약수 : 2 * 2 * 3
최소공배수 : 2 * 2 * 3 * 5 * 2 * 2

  1. 최초 풀이
function Gcd(a, b) {
  let c = 1;
  let k = 2;

  if (a > b) {
    if (b === 1) {
    } else {
      for (; k <= b; k++) {
        if (a % k == 0 && b % k == 0) {
          c *= Gcd(a / k, b / k);
          c *= k;
          break;
        }
      }
    }
  } else {
    if (a === 1) {
    } else {
      for (; k <= a; k++) {
        if (a % k == 0 && b % k == 0) {
          c *= Gcd(a / k, b / k);
          c *= k;
          break;
        }
      }
    }
  }
  return c;
}
function Lcm(a, b) {
  let c = (a * b) / Gcd(a, b);
  return c;
}
  1. 호제법 적용
function Gcd(a, b) {
  var r;

  for (var ab = a * b; (r = a % b); a = b, b = r) {
  }

  return [b, ab / b];
}

0개의 댓글