In [2]:
def rf(n):
    # given a decimal number n, 0<n<1, return the longest recurring digit cycle.
    pass
In [4]:
print 1/7.0
0.142857142857
In [7]:
1/7
Out[7]:
0
In [8]:
10/7
Out[8]:
1
In [29]:
def gen_dec(den):
    # return the length of recurring digits
    rem = 10
    seen = [10]
    found_recurring = False
    tw = 0
    while not found_recurring:
        dig = rem/den
        rem = 10*(rem - (dig*den))
        if rem in seen:
            found_recurring = True
            minus = seen.index(rem)
        else:
            seen.append(rem)
    return len(seen) - minus
In [32]:
print gen_dec(3)
1
In [39]:
def solve26():
    maxs = [2,1] #d, digits
    for d in range(2,1001):
        recs = gen_dec(d)
        current = [d, recs]
        maxs = max(maxs,current, key = lambda x: x[1])
    return maxs[0]
In [41]:
print solve26()
983
In [37]:
def second(lst):
    return lst[1]

def first(lst):
    return lst[0]


l1 = [4,7]
l2 = [3,8]
print max(l1,l2,key = second)
print max(l1,l2,key = first)
print max(l1,l2,key = lambda x: x[1])
[3, 8]
[4, 7]
[3, 8]
In [ ]: