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; }
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력