var sqRoot = function(n){
	var upper = n;
	var lower = 1;

	var results = [1];

	var search = function(){
		var mid = Math.floor((upper + lower) /2);
		var current = mid * mid;

		if(upper === lower || mid === lower || mid === upper) {
			results.sort(function(a, b) {return a - b;})
			return results[results.length - 1];
		} else if(current > n){
			upper = mid;
			return search();
		} else {
			if(current === n){
				return mid;
			} else {
				results.push(mid);
				upper = mid;
				return search();
			}
		}
	}
	return search();
}

