I knew I’d be implementing my own division algorithm for this problem, but I had a hard time figuring out a good way to detect the repeating sequence.
That’s all I have to say about that.
Find the value of d 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part.
def divide n, d, repo = [] return repo.size - repo.index(n) if repo.include? n divide 10 * (n - (n / d) * d), d, repo << n end highest = {"d" => 1, "count" => 1} (1..499).each do |i| x = i * 2 + 1 count = divide 1, x if count > highest['count'] highest = {"d" => x, "count" => count} end end puts highest["d"]