순환소수

시간 제한1초메모리 제한128 MB

요약
괄호로 표시된 반복 마디를 포함한 순환소수를 기약분수로 바꾸어 원래 입력과 함께 출력합니다.
난이도

보통10점 중 4점

유형
수학, 정수론
정답자
아직 제출이 없습니다

문제

분수는 소수로 바꿀 수 있다. 예를 들어 12\frac{1}{2}는 0.50.5이고, 13\frac{1}{3}은 0.333…0.333\dots이며 이를 간단히 0.3‾0.\overline{3}으로 쓴다. 0.50.5는 소수점 아래가 유한하지만, 0.3‾0.\overline{3}은 같은 숫자가 끝없이 되풀이된다. 분수를 순환소수로 나타낸 예는 다음과 같다.

27=0.285714‾1766=0.2575‾\frac{2}{7} = 0.\overline{285714} \qquad \frac{17}{66} = 0.25\overline{75}

256=4.16‾3401333=10.213‾\frac{25}{6} = 4.1\overline{6} \qquad \frac{3401}{333} = 10.\overline{213}

순환소수가 주어지면 그 값과 같은 분수를 구하는 프로그램을 작성하시오. 분자와 분모는 서로소여야 한다.

입력

입력은 여러 개의 테스트 케이스로 이루어지고, 파일의 끝까지 이어진다. 각 줄에 순환소수 하나가 주어진다. 끝없이 되풀이되는 부분은 괄호로 감싸므로 0.25(75)는 0.25757575…0.25757575\dots를 뜻한다. 각 소수에 나오는 숫자의 개수는 최대 9개이다.

출력

테스트 케이스마다 주어진 소수와 값이 같은 분수를 한 줄에 출력한다. 형식은 주어진 소수 = 분자 / 분모이고, 등호와 슬래시 양옆에 공백을 하나씩 둔다. 분자와 분모는 서로소여야 하고, 값이 정수이면 분모는 1이다.

예제1

  1. 예제 1

    입력
    0.(285714)
    0.25(75)
    4.1(6)
    
    예상 출력
    0.(285714) = 2 / 7
    0.25(75) = 17 / 66
    4.1(6) = 25 / 6