Project Euler: Problem 26 – 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.

Idea:

I had no idea how to easily calculate the length of a recurring cycle, especially for odd, made up cases such as: 0.111567111567…. How would I know, programmatically, if once I reach “1115” that it is no longer a recurring cycle (of ones), but to keep going to include “67” to complete the cycle?

//Did not implement

While researching Repeating Decimals, I found out these are called cyclic numbers.  Upon researching more about cyclic numbers (and how to calculate them), I came across the Wikipedia article that appeared to go up to (but not exceeding) 1000.

Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *