[C++] 최대공약수, 최소공배수 구하기 예제[C++] 최대공약수, 최소공배수 구하기 예제

Posted at 2014.09.23 22:42 | Posted in C++



facebook에 글올리기



[C++] 최대공약수, 최소공배수 구하기 예제


GCD : 최대공약수

LCM : 최소공배수


#include <iostream>
using namespace std;

void GCD_LCM(int a, int b, int& gcd, int& lcm);

int main(){

    int gcd = 0;    // 최대공약수
    int lcm = 0;    // 최소공배수

    // 최대 공약수와 최소공배수의 주소값을 전달한다.
    GCD_LCM(28, 35, gcd, lcm);

    cout << "GCD = " << gcd << endl;
    cout << "LCM = " << lcm << endl;


    return 0;
}

void GCD_LCM(int a, int b, int& gcd, int& lcm){

    int z;
    int x = a;
    int y = b;


    // 유클리드 호제법
    while (true){

        z = x %y;
        if (0 == z)
            break;

        x = y;
        y = z;

    }

    gcd = y;
    lcm = a*b / gcd;
}



GCD_LCM 함수는 유클리드 호제법을 사용하여 최대공약수와 최소공배수를 구한다.


이웃추가
facebook에 글올리기

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기