PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
begin var (x,y):=ReadInteger2('Введите через пробел два числа:'); if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим') else begin while y>0 do (x,y):=(y,x mod y); Writeln('НОД=',x) end end.
Примеры Введите через пробел два числа: 14 -2 Ввод отрицательных чисел недопустим
Введите через пробел два числа: 32 76 НОД=4
2. Традиционный "школьный" код
var x,y,t:integer;
begin Write('Введите через пробел два числа: '); Read(x,y); if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим') else begin while y>0 do begin x:=x mod y; t:=x; x:=y; y:=t end; Writeln('НОД=',x) end end.
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018 Внимание! Если программа не работает, обновите версию!
procedure Preobraz(var Stroka:string); begin var bq:=new Queue<(integer,integer)>; foreach var m in Stroka.Matches('\s+') do bq.Enqueue((m.Index,m.Length)); var wq:=new Queue<(integer,string)>; foreach var m in Stroka.Matches('\S+') do if m.Value.Any(t->t in ['0'..'9']) then wq.Enqueue((m.Index,'')) else wq.Enqueue((m.Index,m.Value)); Stroka:=''; var pbi,pwi:integer; while (bq.Count>0) and (wq.Count>0) do begin (pbi,pwi):=(bq.Peek[0],wq.Peek[0]); if pbi<pwi then begin Stroka:=Stroka+bq.Peek[1]*' '; bq.Dequeue end else begin Stroka:=Stroka+wq.Peek[1]; wq.Dequeue end end; while bq.Count>0 do begin Stroka:=Stroka+bq.Peek[1]*' '; bq.Dequeue end; while wq.Count>0 do begin Stroka:=Stroka+wq.Peek[1]; wq.Dequeue end end;
begin var s:=ReadlnString; Preobraz(s); s:='<'+s+'>'; // чтобы было видно, как работает s.Println end.
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var (x,y):=ReadInteger2('Введите через пробел два числа:');
if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим')
else begin
while y>0 do (x,y):=(y,x mod y);
Writeln('НОД=',x)
end
end.
Примеры
Введите через пробел два числа: 14 -2
Ввод отрицательных чисел недопустим
Введите через пробел два числа: 32 76
НОД=4
2. Традиционный "школьный" код
var
x,y,t:integer;
begin
Write('Введите через пробел два числа: ');
Read(x,y);
if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим')
else begin
while y>0 do begin
x:=x mod y;
t:=x; x:=y; y:=t
end;
Writeln('НОД=',x)
end
end.