최대 최소 공약수

최대공약수

  • 두 수 A,B의 공통 약수 중 가장 큰 정수

  • 2부터 min(A,B) 까지 계속 나누기

    • A, B의 약수가 두 수 보다 클 수 없기 때문에. A,B중 가장 작은수까지만 계산.

// x,y가 약수로 나눠지기 때문에 계속 작아진다.
 while(mod <= min(x, y)) {
  if(x % mod == 0 && y % mod == 0) {
      modList.push_back(mod);

      x /= mod;
      y /= mod;

  } else {
      mod += 1;
  }
}

최소 공배수

  • 두 수 A,B의 공통 배수 중 가장 작은 정수

  • 최대 공약수가 g일 때, g(A/g)(B/g)가 최소공약수

Last updated

Was this helpful?