Project Euler 26 计算小数位循环的位数

来源:互联网 发布:制作传单的软件 编辑:程序博客网 时间:2024/06/16 20:57

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.51/3= 0.(3)1/4= 0.251/5= 0.21/6= 0.1(6)1/7= 0.(142857)1/8= 0.1251/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.


解析:费马小定理的应用


def recu_cycle(d):for t in range(1,d):if 1 == 10**t % d:return t;return 0longest = max(recu_cycle(i) for i in range(2,1001))print [i for i in range(2,1001) if recu_cycle(i) == longest][0]


1 0
原创粉丝点击