Edgar는 자기가 모르는 게 없다고 생각한다.
Java로 프로그램을 짜 본 적이 있는 그는 컴퓨터에 저장되는 수가 전부 근삿값이라고 믿는다. 게다가 Java 프로그램은 온통 점투성이다. System.out.please.oh.please.println() 같은 식이다. 그래서 Edgar는 0과 1 사이의 수도 Java에서는 앞자리 몇 개만 저장되고 나머지는 점의 나열로 이어진다고 여긴다. 예를 들어 1/6은 "0.1666..."으로 저장된다. Scheme의 아름다움을 알게 된 뒤 Edgar는 수를 정확히 저장할 수 있다는 사실을 깨달았고, 자기 Java 프로그램을 정확한 표현으로 고쳐 쓰려고 한다.
기록된 숫자열 하나에 들어맞는 분수는 여러 개다. Edgar는 그중 가장 간단한 분수, 즉 분모가 가장 작은 분수를 원래 분수로 본다. 또 Java가 중요한 자리를 충분히 저장한다고 가정한다. 즉 순환마디는 적어도 한 번 통째로 기록됐다. 순환마디가 0뿐인 경우에도 그렇다.
기록된 숫자열이 주어지면 원래 분수를 구하라. 조건을 만족하는 분수 중 분모가 가장 작은 것은 하나뿐이다.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 0.dddd... 형태의 줄 하나다. dddd는 길이가 1 이상 9 이하인 숫자열이고 전부 0은 아니며, 그 뒤에 마침표 세 개가 붙는다. 기록된 값은 0보다 크고 1보다 작다.
마지막 테스트 케이스 다음 줄에는 0 하나만 있다. 테스트 케이스는 1000개 이하다.
각 테스트 케이스마다 원래 분수를 한 줄에 p/q 형태로 출력한다. p와 q는 서로소인 양의 정수이고, 빗금 앞뒤에 공백을 넣지 않는다.
유한소수는 순환 표현이 두 가지다. 예를 들어 1/5는 0.2000...이면서 0.1999...이다. 어느 쪽으로 기록됐든 같은 분수로 되돌린다.