Цитата(alexsl @ May 7 2008, 16:31)

Число итераций около N = Ln( Value)
Можно еще снизить число итераций подбором начального значения div_
function sqrt_newton(value: Int64; var cnt: integer): integer;
var
_div: int64;
begin
cnt := 0;
Result := 0;
if (value <= 0) then Exit;
Result := value;
_div := value;
while (True) do begin
Inc(cnt);
_div := (value div _div + _div) div 2;
if (Result > _div) then
Result := _div
else
break;
end;
end;