[프로그래머스/C++] 최대공약수와 최소공배수

꿈별·2024년 1월 11일
0

문제풀이

목록 보기
36/52

문제


풀이

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int n, int m) {
    if (n == m) return { n, n };
    int big = n, small = m, mod;
    if (big < small) swap(big, small);
    while (0 != big % small)
    {
        mod = big % small;
        big = small;
        small = mod;
    }
    return { small, n * m / small };

}

유클리드 호제법

참고

최대공약수 구할 때 유용한 방법.

  • 과정
  1. 맨 처음에 - 큰 수작은 수로 나눈다.
  2. 그 이후 - 나누는 수나머지로 나눈다.
  3. 나머지0 이 될 때의 나누는 수 최대공약수이다.

0개의 댓글