소수를 분수로
면접 대비시간 제한1초메모리 제한128 MB
소수점 아래에 순환마디가 괄호로 주어질 수 있는 소수를 정확한 기약분수로 바꾼다.
문제
유리수를 소수로 나타내면 두 가지 경우가 있다. 소수점 아래 자릿수가 유한한 경우(예: )와, 어떤 자리부터 일정한 숫자열이 끝없이 되풀이되는 경우(예: )이다.
소수를 입력받아 이를 기약분수로 나타내는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 개수는 을 넘지 않는다. 이어지는 각 줄에 소수가 하나씩 주어진다.
각 소수는 항상 0.으로 시작한다. 그 뒤에 숫자가 개에서 개까지 이어지고, 그다음에 괄호로 감싼 수가 올 수도 있다. 괄호 안의 수는 길이가 이상 이하이며, 그 부분이 무한히 반복됨을 뜻한다.
주어지는 소수에는 항상 이 아닌 숫자가 하나 이상 있으며, 괄호 안의 수는 모두 이거나 모두 인 경우는 없다.
출력
각 테스트 케이스마다 주어진 소수를 분수로 나타내어 한 줄에 출력한다. 분자와 분모는 서로소(기약분수)이어야 한다.