码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-08-20 16:25:32      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:python   projecteuler   

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.


解析:费马小定理的应用


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


Project Euler 26 计算小数位循环的位数,布布扣,bubuko.com

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

标签:python   projecteuler   

原文地址:http://blog.csdn.net/q745401990/article/details/38707077

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