Skip to content

Square Root

Floor of square root.

Input: 4
Output: 2

Input: 6
Output: 2

Input: 9
Output: 3

Input: 12
Output: 3

Input: 16
Output: 4

package main

import "fmt"

func main() {
    r := squarRoot(5)
    fmt.Println(r)
}

func squarRoot(n int) int {
    low := 0
    high := n
    for low <= high {
        mid := (low + high) / 2
        if mid*mid == n {
            return mid
        } else if mid*mid < n {
            low = mid + 1
        } else {
            high = mid - 1
        }
    }
    return low - 1
}