title: how does python calculate square roots?
body: <p>I noticed that square roots are pretty fast in python.</p>
  
  <pre><code>import time
  a = time.time()
  print((1234567891011121314151617181920**8)**0.5)
  d = time.time()-a
  print(d)
  </code></pre>
  
  <p>output:</p>
  
  <pre><code>2.32305723559e+120
  0.0150001049042
  </code></pre>
  
  <p>That's a 200+ digit number in under 0.1 second! </p>
  
  <p>So what's the algorithm behind all this?</p>