right = N; left = 1; eps = 1e-7; while (fabs(left - right) > eps) { double mid = (left + right) / 2; if (mid * mid <= x) left = mid; else right = mid; }