문제

https://www.acmicpc.net/problem/1735
1735번: 분수 합
첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.
www.acmicpc.net
코드
#include <iostream>
using namespace std;
int gcd(int a, int b){
int c;
while(b!=0){
c=a%b;
a=b;
b=c;
}
return a;
}
int main(){
int a1,a2,b1,b2,result1,result2,gcdd;
cin >> a1 >> a2 >> b1 >> b2;
result1 = a1*b2+a2*b1;
result2 = a2*b2;
gcdd = gcd(result1, result2);
cout << result1/gcdd << ' ' << result2/gcdd << '\n';
return 0;
}
정리
유클리드 호제법을 이용해 최대공약수를 구하여 풀면 되는 문제이다. 유클리드 호제법을 이용해서 최대공약수 구하는 방법을 기억해둬야 겠다.
참조
'Beakjoon > math' 카테고리의 다른 글
| [백준] 1850번 최대공약수 (C++) - Euclidean algorithm (0) | 2022.09.07 |
|---|---|
| [백준] 4948번 베르트랑 공준 (C++) - Prime Number (0) | 2022.06.14 |
| [백준] 6588번 골드바흐의 추측 (C++) (0) | 2022.04.01 |
| [백준] 1929번 소수 구하기 (C++) (0) | 2022.03.26 |
| [백준] 17425번 약수의 합 (C++) (0) | 2022.03.25 |