Advertisement
justinwsmith

Ruby - Integer Square Root

Jul 16th, 2013
1,659
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.27 KB | None | 0 0
  1. class Integer
  2.   def isqrt
  3.     return 0 if zero?
  4.     return 1 if self == 1
  5.     return nil if self < 0
  6.     x_k = next_x_k = (self >> 1)
  7.     begin
  8.       x_k = next_x_k
  9.       next_x_k = (x_k + self/x_k) >> 1
  10.     end until (x_k - next_x_k) <= 0
  11.     return x_k
  12.   end
  13. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement