码迷,mamicode.com
首页 > 编程语言 > 详细

欧拉计划(python) problem 26

时间:2015-06-17 21:45:33      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:eularproject   数学   

Reciprocal cycles

Problem 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.


Answer:
983
Completed on Wed, 17 Jun 2015, 10:01

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)-tempValue

result=7
num=6
for i in range(2,1000):
    temp=func(i)
    if temp>num:
        result,num=i,temp
print(result)

time: <1s

欧拉计划(python) problem 26

标签:eularproject   数学   

原文地址:http://blog.csdn.net/zhangzhengyi03539/article/details/46535731

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!