Var a,b,i,nod:integer Begin a:=-1; b:=-1; //ввод первого числа Writeln('Введите первое число'); While a<0 do begin readln(a); if a<0 then writeln('Ввод ошибочен, повторите ввод первого числа'); end; //ввод второго числа Writeln('Введите второе число'); While b<0 do begin readln(b); if b<0 then writeln('Ввод ошибочен, повторите ввод второго числа'); end; //определение минимального числа if a>b then i:=b else i:=a; //перебор чисел от минимального до 0 (т.к. НОД не может быть больше минимального числа) While nod=0 do begin i:=i-1; if (a mod i = 0) and (b mod i = 0) then nod:=i; end; //вывод НОД Writeln('НОД ', a,' и ', b, ' = ', nod); end.
Begin
a:=-1;
b:=-1;
//ввод первого числа
Writeln('Введите первое число');
While a<0 do
begin
readln(a);
if a<0 then writeln('Ввод ошибочен, повторите ввод первого числа');
end;
//ввод второго числа
Writeln('Введите второе число');
While b<0 do
begin
readln(b);
if b<0 then writeln('Ввод ошибочен, повторите ввод второго числа');
end;
//определение минимального числа
if a>b then i:=b else i:=a;
//перебор чисел от минимального до 0 (т.к. НОД не может быть больше минимального числа)
While nod=0 do
begin
i:=i-1;
if (a mod i = 0) and (b mod i = 0) then nod:=i;
end;
//вывод НОД
Writeln('НОД ', a,' и ', b, ' = ', nod);
end.