Coding_Test 연습/Programmers

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

Codetesing 2022. 4. 27. 13:12

최대공약수, 최소공배수 구하는 문제이다.

내생각엔 long long을 써야될것 같은데 int로 해도 통과된다.

GCD는 유클리드 호제법으로 풀었고 LCM은 GCD로 구했다.

#include <algorithm>
#include <vector>

using namespace std;

int GCD(int a, int b)
{

    if (b == 0)
        return a;

    else
        return GCD(b, a % b);
}

vector<int> solution(int n, int m) {
    vector<int> answer;

    int gcd = GCD(n, m);
    int lcm = n * m / gcd;

    answer.push_back(gcd);
    answer.push_back(lcm);

    return answer;
}