• 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.

Ответы 0

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years