標籤:eularproject 數學
Reciprocal cyclesProblem 26
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given:
1/2 |
= |
0.5 |
1/3 |
= |
0.(3) |
1/4 |
= |
0.25 |
1/5 |
= |
0.2 |
1/6 |
= |
0.1(6) |
1/7 |
= |
0.(142857) |
1/8 |
= |
0.125 |
1/9 |
= |
0.(1) |
1/10 |
= |
0.1 |
Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle.
Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part.
python code:
def func(k): dict={} result='' left=1 while True: item=left*10//k left=left*10-item*k s=str(item)+"_"+str(left) tempValue=dict.get(s) if tempValue==None: dict[s]=len(result) result+=str(item) else: break return len(result)-tempValueresult=7num=6for i in range(2,1000): temp=func(i) if temp>num: result,num=i,tempprint(result)
time: <1s
歐拉計劃(python) problem 26