1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か?

http://projecteuler.net/index.php?section=problems&id=26
問題。
1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か?


結構悩んだ。下参照。
http://ja.wikipedia.org/wiki/%E5%BE%AA%E7%92%B0%E5%B0%8F%E6%95%B0


素数の倍数同士は循環節の長さがかぶる可能性がある。
とりあえず素数のみについて計算。かぶるときは小さい方。
計算結果は500以上だったので、これが解。

# -*- coding:utf-8 -*-

def ChkPn(n):
	i = 2
	while i*i <= n:
		if n%i == 0:
			return False
		i += 1
	return True

def Length(n):
    if not n%2:
        return 1
    if not n%5:
        return 1
    if not ChkPn(n):
        return 1
    m = 1
    while True:
        if (10**m -1) % n == 0:
            return m
        m += 1

def Main():
    s = 0
    n = 0
    for i in xrange(1,1000):
        l = Length(i)
        if l > s:
            s = l
            n = i
    return n

print Main()