package main
import (
"fmt"
)
func mySqrt(n int) int {
if n == 0 || n == 1 {
return n
}
start, end := 1, n
for start <= end {
mid := start + (end - start) / 2
// Use int64 to avoid overflow on mid*mid
midSq := int64(mid) * int64(mid)
if midSq > int64(n) {
end = mid - 1
} else if midSq == int64(n) {
return mid
} else {
start = mid + 1
}
}
return end
}
func main() {
fmt.Println(mySqrt(240000))
}
/*
run:
489
*/