백준 14719번 파이썬

정재혁·2022년 7월 28일
0

백준 14719번 빗물

문제


입력 및 출력값


풀이:

해당 문제는 두 분수가 주어졌을 때 분수의 합을 구하고 이를 기약분수로 표현하는 문제다.
해당 문제를 풀기 위해서는 기약분수의 정의를 알아야 하는데 기약분수는 분자와 분모가 서로소인 경우를 말한다.
즉 두 수 중에서 작은 값의 소인수를 리스트로 만들어 분자와 분모 공통으로 나눠지는 값이 있다면 나눠 주는 방식으로 문제를 풀었다.

코드:

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))

profile
저는 정재혁임니다^___^

0개의 댓글