Overview

 

Question

A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given:

\[ \begin{aligned} \frac{1}{2}&=0.5 \\\\ \frac{1}{3}&=0.\overline{3} \\\\ \frac{1}{4}&=0.25 \\\\ \frac{1}{5}&=0.2 \\\\ \frac{1}{6}&=0.1\overline{6} \\\\ \frac{1}{7}&=0.\overline{142857} \\\\ \frac{1}{8}&=0.125 \\\\ \frac{1}{9}&=0.\overline{1} \\\\ \frac{1}{10}&=0.1 \end{aligned} \]

Where \(0.1\overline{6}\) means \(0.1666\dots\), and has a 1-digit recurring cycle. It can be seen that \(\frac{1}{7}\) has a 6-digit recurring cycle.

Find the value of \(d < 1000\) for which \(\frac{1}{d}\) contains the longest recurring cycle in its decimal fraction part.

click for answer

983

Solutions

 

Ruby

 cycles.rb https://raw.github.com/addamh/euler/master/026/cycles.rb download
require "prime"
print for p in Prime.take_while{|p| p<1000}.reverse do
  break p if for d in (1...p) do
    break p if (10**d-1)%p==0 and d==p-1
    break if (10**d-1)%p==0
  end
end
$ time ruby cycles.rb
real	0m0.675s
user	0m0.644s
sys	0m0.027s