아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

분수를 순환소수로

면접 대비

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

요약
주어진 분수를 소수점 아래 반복되지 않는 부분과 괄호로 묶은 반복 블록으로 출력합니다.
난이도

보통10점 중 5점

유형
해시맵, 수학, 시뮬레이션
정답자
아직 제출이 없습니다

문제

모든 유리수는 어느 자리부터 같은 숫자열이 끝없이 되풀이되는 순환소수로 적을 수 있다.

13=39=0.3333333⋯=0.3‾\frac{1}{3} = \frac{3}{9} = 0.3333333\dots = 0.\overline{3}

17=142857999999=0.14285714285714⋯=0.142857‾\frac{1}{7} = \frac{142857}{999999} = 0.14285714285714\dots = 0.\overline{142857}

314=21428559999990=0.2142857142857⋯=0.2142857‾\frac{3}{14} = \frac{2142855}{9999990} = 0.2142857142857\dots = 0.2\overline{142857}

위 식에서 분모가 9와 0으로만 이루어진 것을 보면 알 수 있듯이, 순환소수를 분수로 바꾸는 방법은 공식으로 정리되어 있다. 반대로 아무 분수나 주어졌을 때 그 공식을 그대로 쓰기는 어렵다. 그래서 분수를 순환소수로 바꿀 때는 보통 나눗셈을 반복한다. 손으로 하기에는 품이 많이 드는 일이니, 이 계산을 대신 해 주는 프로그램을 작성하라.

입력

첫 줄에 테스트 케이스의 수 TT (1≤T≤150001 \le T \le 15000)가 주어진다.

이어지는 TT개 줄에 각각 분자 aa와 분모 bb가 공백으로 구분된 정수로 주어진다. 0≤a<10240 \le a < 1024, 0<b<10240 < b < 1024이다.

출력

각 테스트 케이스마다 a/ba/b의 순환소수를 한 줄에 하나씩 출력한다.

정수 부분, 소수점, 순환하지 않는 소수 부분, 괄호로 감싼 순환 마디를 차례로 이어 쓴다. 순환하지 않는 부분이 비어 있으면 소수점 바로 뒤에 여는 괄호가 온다. 나눗셈이 딱 떨어져 소수 부분이 유한한 경우에도 그 뒤로 0이 끝없이 반복되므로 (0)(0)을 붙인다. 순환하지 않는 부분과 순환 마디는 각각 가능한 가장 짧은 것으로 정한다.

예제1

  1. 예제 1

    입력
    6
    1 2
    1 7
    10 5
    11 5
    995 476
    991 994
    
    예상 출력
    0.5(0)
    0.(142857)
    2.(0)
    2.2(0)
    2.09(033613445378151260504201680672268907563025210084)
    0.9(969818913480885311871227364185110663983903420523138832997987927565392354124748490945674044265593561368209255533199195171026156941649899396378269617706237424547283702213279678068410462776659959758551307847082494)