How to get the square root rounded down to the nearest integer of a positive integer in Pascal

1 Answer

0 votes
program MySqrtProgram;

function MySqrt(n : LongInt) : LongInt;
var
  start, finish, mid : LongInt;
begin
  if (n = 0) or (n = 1) then
  begin
    MySqrt := n;
    Exit;
  end;

  start  := 1;
  finish := n;

  while start <= finish do
  begin
    mid := start + (finish - start) div 2;

    if Int64(mid) * mid > n then
      finish := mid - 1
    else if mid * mid = n then
    begin
      MySqrt := mid;
      Exit;
    end
    else
      start := mid + 1;
  end;

  MySqrt := finish;
end;

begin
  WriteLn(MySqrt(240000));  
end.




(*
run:

489

*)

 



answered Dec 29, 2025 by avibootz

Related questions

...