Pascal. Помогите, пожалуйста, исправить ошибку. Оптимизировать код и т.п. не прошу, мне только надо заставить этот код работать правильно, все остальное я уже сделаю сама. Сама программа должна по заданному числу N находить такие числа a и b, которые в сумме будут давать N и их НОД будет максимален. (т.е. их НОД будет больше НОДа в любой другой такой паре).
Function nod (var a,b: integer): integer;
Var c: integer;
Begin
Repeat
if a > b then
a:= a mod b
else
b:= b mod a;
until (a = 0) or (b = 0);
nod:= a + b;
End;
Var a,a1,a2,max,a3,a4:int64;
Begin
Readln(a);
a1:= a div 2;
a2:= (a div 2)+1;
max:=1;
if a mod 2 = 0 then Writeln (a div 2,' ',a div 2)
else
while a1>0 do
begin
if NOD(a1,a2) > max then max:= NOD(a1,a2);
a1:=a1-1;
a2:=a2+1;
end;
a1:= a div 2;
a2:= (a div 2)+1;
while a1>0 do
begin
if NOD(a1,a2) = max then a1:=a3, a2:=a4;
a1:=a1-1;
a2:=a2+1;
end;
Writeln(a3,' ',a4);
End.