-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path21_boj_5376.py
40 lines (31 loc) · 922 Bytes
/
21_boj_5376.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import re
detect = re.compile('[(].+[)]')
n = int(input())
def GCD(x,y) :
if y !=0 :
return GCD(y, x%y)
else :
return x
for i in range(n) :
num = input()[2:]
iter = detect.findall(num)
if ( len(iter)!=0 ) :
iter = iter[0][1:len(iter[0])-1]
iter_len = len(iter)
idx1 = num.index('(')
idx2 = num.index(')')
if idx1==0 :
denominator = int('9'*iter_len)
numerator = int(iter)
else :
not_iter = num[:idx1]
not_iter_len = len(not_iter)
denominator = int('9'*iter_len + '0'*not_iter_len)
numerator = int(not_iter+iter) - int(not_iter)
else :
denominator = int('1'+'0'*len(num))
numerator = int(num)
gcd = GCD(numerator, denominator)
denominator /= gcd
numerator /= gcd
print(str(int(numerator))+'/'+str(int(denominator)))