🤔최대공약수

🔑반복문으로 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>

int Gcd(int a, int b)
{
    int temp;

    if(a < b)
    {
        temp = a;
        a = b;
        b = temp;
    }
    
    while(b != 0)
    {
        int r = a % b;
        a = b;
        b = r;
    }

    return a;
}

int main()
{
    std::cout << Gcd(6, 12) << std::endl;
}

🔑재귀함수로 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

int Gcd(int a, int b)
{
    if(b == 0)
    {
        return a;
    }
    else
    {
        return Gcd(b, a % b);
    }
}

int main()
{
    std::cout << Gcd(6, 12) << std::endl;
}



🤔최소공배수

🔑최대공약수를 이용하여 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>

int Gcd(int a, int b)
{
    int temp;

    if(a < b)
    {
        temp = a;
        a = b;
        b = temp;
    }
    
    while(b != 0)
    {
        int r = a % b;
        a = b;
        b = r;
    }

    return a;
}

int Lcm(int a, int b)
{
    return (a * b) / Gcd(a, b);
}

int main()
{
    std::cout << Gcd(6, 12) << std::endl;
    std::cout << Lcm(6, 12) << std::endl;
}



Leave a comment