728x90
문제
대열이는 욱제의 친구다.
“야 백대열을 약분하면 뭔지 알아?”
“??”
“십대일이야~ 하하!”
n:m이 주어진다. 욱제를 도와주자. (...)
https://www.acmicpc.net/problem/14490
입력
n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000)
출력
두 수를 최대한으로 약분하여 출력한다.
예제
# input
100:10
# output
10:1
# input
18:24
# output
3:4
문제 풀이
# 유클리드 호제법을 사용하여 두 숫자의 최대공약수를 계산하는 함수
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
# 입력 받기
n, m = map(int, input().split(':'))
# n과 m의 최대공약수 계산
g = gcd(n, m)
# n과 m을 최대공약수로 나눈 값을 ':'로 구분하여 출력
print(f'{n//g}:{m//g}')
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90