func isPerfectSquare(num int) bool { beg, end := 1, num+1 for beg < end { mid := beg + (end-beg)/2 div := num / mid if div == mid && div*mid == num { // 5 / 2 == 2, but 2 * 2 != 5 return true } else if div < mid { end = mid } else if mid <= div { beg = mid + 1 } } return false }