title: Algorithm for detecting repeating decimals?
body: <p>Is there an algorithm for figuring out the following things?</p>
  
  <ol>
  <li>If the result of a division is a repeating decimal (in binary).</li>
  <li>If it repeats, at what digit (represented as a power of 2) does the repetition start?</li>
  <li>What digits repeat?</li>
  </ol>
  
  <p>Some examples:</p>
  
  <pre><code>1/2 = 1/10 = 0.1 // 1 = false, 2 = N/A, 3 = N/A, 4 = N/A
  1/3 = 1/11 = 0.010101... // 1 = true, 2 = -2, 3 = 10
  2/3 = 10/11 = 0.101010... // 1 = true, 2 = -1, 3 = 10
  4/3 = 100/11 = 1.010101... // 1 = true, 2 = 0, 3 = 10
  1/5 = 1/101 = 0.001100110011... // 1 = true, 2 = -3, 3 = 1100
  </code></pre>
  
  <p>Is there a way to do this?  Efficiency is a big concern.  A description of the algorithm would be preferred over code, but I'll take what answer I can get.</p>
  
  <p>It's also worth noting that the base isn't a big deal; I can convert the algorithm over to binary (or if it's in, say base 256 to use <code>char</code>s for ease, I could just use that).  I say this because if you're explaining it might be easier for you to explain in base 10 :).</p>