해당 문제는 두 분수가 주어졌을 때 분수의 합을 구하고 이를 기약분수로 표현하는 문제다.
해당 문제를 풀기 위해서는 기약분수의 정의를 알아야 하는데 기약분수는 분자와 분모가 서로소인 경우를 말한다.
즉 두 수 중에서 작은 값의 소인수를 리스트로 만들어 분자와 분모 공통으로 나눠지는 값이 있다면 나눠 주는 방식으로 문제를 풀었다.
n1, m1 = map(int, input().split())
n2, m2 = map(int, input().split())
ans1, ans2 = n2*m1 + n1*m2, m1*m2
d = 2
lst =[]
x = min(ans1, ans2)
while d <= x:
if x % d == 0:
lst.append(d)
x = x / d
else:
d += 1
for x in lst:
if ans1 % x ==0 and ans2 % x ==0:
ans1 /= x
ans2 /= x
print(int(ans1), int(ans2))