1234567891011121314151617sqrt(n uint) -> uint { if n == 0 { return 0 } x := n y := (x + 1) >> 1 loop { if y >= x { return x } x = y y = (x + n / x) >> 1 }}