object Program {
def mySqrt(n: Long): Long = {
if (n == 0 || n == 1) return n
var start = 1L
var end = n
while (start <= end) {
val mid = start + (end - start) / 2
val midSq = BigInt(mid) * mid
if (midSq > n) {
end = mid - 1
} else if (midSq == n) {
return mid
} else {
start = mid + 1
}
}
end
}
def main(args: Array[String]): Unit = {
println(mySqrt(240000))
}
}
/*
run:
489
*/