백준/약수, 배수와 소수
1735번: 분수 합 [C++]
Koalitsiya
2023. 3. 29. 11:37
문제
풀이
기약분수의 분모는 두 분모의 최소공배수이고, 분자는 서로의 분자와 분모를 곱한 값 2개를 더한 값을 최대공약수로 나눈 값이다.
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int main() {
int a1, a2, b1, b2;
cin >> a1 >> a2 >> b1 >> b2;
int num1 = (a1 * b2) + (a2 * b1);
int num2 = a2 * b2;
cout << num1 / gcd(num1, num2) << " " << num2 / gcd(num1, num2);
return 0;
}