Convert to Fraction

View as PDF

Submit solution


Points: 0.67 (partial)
Time limit: 0.38s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
Own
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Mọi số hữu tỉ đều có thể biểu diễn dưới dạng phân số hoặc dạng thập phân vô hạn tuần hoàn.

  1. Biểu diễn dạng phân số của một số hữu tỉ là ~\frac{a}{b}~, với ~a, b~ là các số nguyên, ~b~ khác ~0~, và ước chung lớn nhất của ~a~ và ~b~ bằng ~1~ (để đảm bảo phân số tối giản).
  2. Biểu diễn dạng thập phân vô hạn tuần hoàn của một số hữu tỉ là ~x~. ~y(z)~, với ~x, y, z~ là các số nguyên (có thể có số ~0~ ở đầu). Trong biểu diễn này, ~(z)~ thể hiện cho phần tuần hoàn.

Biểu diễn phải đảm bảo trước tiên là ~y~ có ít chữ số nhất có thể, sau đó là ~z~ có ít chữ số nhất có thể. Ví dụ, biểu diễn ~0.12(1212)~ là không hợp lệ; biểu diễn đúng là ~0.(12)~.

Lưu ý rằng biểu diễn có thể không có phần ~y~, và nếu số hữu tỉ có phần thập phân hữu hạn thì ~(z) = (0)~. Ví dụ, ~\frac{1}{3} = 0.(3)~, ~\frac{20}{13} = 1.(538461)~, ~\frac{557}{495} = 1.1(25)~, ~\frac{5}{1} = 5.(0)~, ~\frac{3}{2} = 1.5(0)~ ...

Cho biểu diễn dạng thập phân vô hạn tuần hoàn của một số số hữu tỉ, hãy tìm biểu diễn dạng phân số của chúng.

Input

Dòng đầu ghi ~T~ là số lượng số hữu tỉ cần tính toán. ~T~ dòng tiếp theo, mỗi dòng ghi một số hữu tỉ được biểu diễn dưới dạng thập phân vô hạn tuần hoàn, theo định dạng như mô tả ở ~(2)~.

Output

Gồm ~T~ dòng, mỗi dòng ghi biểu diễn dạng phân số của số hữu tỉ tương ứng, theo định dạng như mô tả ở ~(1)~.

Giới hạn

Trong ~50\%~ số điểm:

  • ~0 \leq x \leq 10^{3}~
  • ~0 \leq y \leq 10^{3}~
  • ~0 \leq z \leq 10^{3}~

Trong ~50\%~ số điểm còn lại:

  • ~0 \leq x \leq 10^{10}~
  • ~0 \leq y \leq 10^{10}~
  • ~0 \leq z \leq 10^{10}~

Sample Input

5
0.(3)
1.(538461)
1.1(25)
5.(0)
1.5(0)

Sample Output

1/3
20/13
557/495
5/1
3/2

Comments

Please read the guidelines before commenting.


There are no comments at the moment.