In [82]:
rational_series_num = []
rational_series_den = []
rational_series_num.insert(0, 1)
rational_series_den.insert(0, 1)

In [83]:
def create_rational_series(max):
    series = "R"
    for i in range(1, max):
        numerator = rational_series_num[i-1]
        denominator = rational_series_den[i-1]
        
        curr = None
        if series == "D":
            num_int = numerator + 1
            den_int = denominator
            series = "DUP"
        elif series == "R":
            num_int = 1
            den_int = denominator + 1
            series = "DWN"
        elif series == "DWN":
            num_int = numerator + 1
            den_int = denominator - 1
            
            if den_int == 1:
                series = "D"
        elif series == "DUP":
            num_int = numerator - 1
            den_int = denominator + 1
            
            if num_int == 1:
                series = "R"
                
        rational_series_num.insert(i, num_int)
        rational_series_den.insert(i, den_int)

In [84]:
%time create_rational_series(10000000)


CPU times: user 7.79 s, sys: 143 ms, total: 7.94 s
Wall time: 7.96 s

In [85]:
no_cases = input()

for i in range(0, no_cases):
    index = input()
    print "TERM " + str(index) + " IS " + str(rational_series_num[index-1]) + "/" +  str(rational_series_den[index-1])


3
3
TERM 3 IS 2/1
14
TERM 14 IS 2/4
7
TERM 7 IS 1/4

In [62]:
print rational_series


['1/1', '1/2', '2/1', '3/1', '2/2', '1/3', '1/4', '2/3', '3/2', '4/1', '5/1', '4/2', '3/3', '2/4', '1/5', '1/6', '2/5', '3/4', '4/3', '5/2']

In [ ]: