c++ 문제 최대공약수랑 최소공배수

조회수 750회

외부클래스를 이용한 최대공약수랑 최소공배수를 구해야 하는데 실행이 안되요. 부탁드리겠습니다.

#include <iostream>

using namespace std;

class Test {

private:

    int input1, input2;

public:

    int a, b, c, d;
    void setSum(int a, int b);
    void GCD();
    void LCM();
};

void Test::setSum(int a, int b) {

    a = input1;
    b = input2;
}

void Test::GCD() {

    if (a < b) swap(a, b);
    while (b != 0)
    {
        c = a % b;
        a = b;
        b = a;
    }
    printf("최대공배수는 %d입니다.\n", c);
}

void swap(int &a, int &b)
{

    int temp = a;
    a = b;
    b = temp;
}

void Test::LCM() {

    d = a * b / c;
    printf("최소공배수는 %d입니다.\n", d);
}

int main(void)
{

    int a, b;
    Test A;
    cout << "두 수를 입력하시오 : ";
    cin >> a >> b;

    A.set(a , b);
    A.GCD();
    A.LCM();

    return 0;
}

1 답변

  • 아래 코드 참고하세요.

    • 코드
    #include <iostream>
    
    using namespace std;
    
    class Test
    {
    public:
        void set(int input1, int input2);
        void GCD();
        void LCM();
    private:
        int num1{ 0 }, num2{ 0 }, G{ 0 }, L{ 0 };
    };
    
    void Test::set(int input1, int input2)
    {
        num1 = input1;
        num2 = input2;
    }
    
    void Test::GCD()
    {
        int a = num1;
        int b = num2;
        int c = 0;
    
        if (a < b)
        {
            int temp = a;
            a = b;
            b = temp;
        }
    
        while (b != 0)
        {
            c = a % b;
            a = b;
            b = c;
        }
        G = a;
        printf("최대 공약수는 %d입니다.\n", G);
    }
    
    void Test::LCM()
    {
        if (G != 0)
        {
            L = num1 * num2 / G;
            printf("최소 공배수는 %d입니다.\n", L);
        }
    }
    
    int main()
    {
        Test A;
        int a = 0, b = 0;
    
        cout << "두 수를 입력하시오 : ";
        cin >> a >> b;
    
        A.set(a, b);
        A.GCD();
        A.LCM();
    
        return 0;
    }
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)