분수를 순환소수로

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

보통5해시맵수학시뮬레이션면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

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

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 (1T150001 \le T \le 15000)가 주어진다.

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

출력

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

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