백준 1735 - 분수 합
카테고리 없음 2019. 8. 12. 22:37
#include
using namespace std;
int main()
{
int N, M, O, P;
cin >> N >> M >> O >> P;
int temp1, temp2;
temp1 = (N * P) + (M * O);
temp2 = M * P;
int res1 = temp1;
int res2 = temp2;
if (temp1 < temp2)
{
int temp3 = temp1;
temp1 = temp2;
temp2 = temp3;
}
while (temp1 % temp2 != 0)
{
int temp3;
temp3 = temp1 % temp2;
temp1 = temp2;
temp2 = temp3;
}
cout << res1 / temp2 << " " << res2 / temp2;
}
유클리드 호제법이란 X%Y = R -> Y%R = R2 -> R%R2 = R3...를 반복하여 나머지가 0이 될 때 나온 나머지가 최대 공약수라는 공식이다. 이를 통해 나온 최대공약수를 입력받는 분자,분모에 나누는 수로 쓰면 됨.