function NSD (A, B: Longint): Longint;
{Funkce vrací největšího společného dělitele čísel A a B.}
{K výpočtu je použit modifikovaný Euklidův algoritmus.}
begin
  A:= Abs(A);
  B:= Abs(B);
  while (A<>0) and (B<>0) do
  begin
    if A>B then A:= A mod B
           else B:= B mod A;
  end;
  if A=0 then NSD:= B
         else NSD:= A;
end;