728x90
https://www.acmicpc.net/problem/1735
최초풀이
각각의 분모, 분자 수를 만들어서 각각을 2부터 더작은 수까지 나눌 수 있는 수들을 나누는 방식으로 두수 모두 더이상 나눠지지 않을 때까지 과정을 반복해준다.
주의사항 for을 통해 나눠진다면 나눠질 때마다 i를 1로 초기화해주어야 한다.(중복되는 인수들을 나눠주기 위함)
#include <iostream>
using namespace std;
int main() {
int A1, B1, A2, B2, A, B;
cin >> A1 >> B1;
cin >> A2 >> B2;
A = A1 * B2 + B1 * A2;
B = B1 * B2;
if (A == B) {
cout << 1 << " " << 1;
}
else if (A > B) {
for (int i = 2; i <= B; i++) {
if (A % i == 0 && B % i == 0) {
A = A / i;
B = B / i;
i = 1;
}
}
cout << A << " " << B;
}
else {
for (int i = 2; i <= A; i++) {
if (A % i == 0 && B % i == 0) {
A = A / i;
B = B / i;
i = 1;
}
}
cout << A << " " << B;
}
return 0;
}
728x90
'🥇Baekjoon Solutions > 정수론' 카테고리의 다른 글
[C++] 백준 2824번: 최대공약수 (0) | 2021.07.30 |
---|---|
[C++] 백준 14476번: 최대공약수 하나 빼기 (0) | 2021.07.30 |
[C++] 백준 6588번: 골드바흐의 추측 (0) | 2021.07.29 |
[C++] 백준 10430번: 나머지 (0) | 2021.07.28 |
[C++] 백준 4375번: 1 (0) | 2021.07.27 |
댓글