Program z1; var a,b,c,d:integer; procedure nod(x,y:integer;var nod2:integer); begin while x<>y do begin if x>y then begin x:=x-y end else begin y:=y-x end end; nod2:=xend; begin write('a=');readln(a); write('b=');readln(b); write('c=');readln(c); write('d=');readln(d); nod(a,b,b); nod(b,c,c); nod(c,d,d); writeln('nod=',d); readln end.
Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer; begin f := 3001; l := 0; r := 65534; x := (l + r) div 2; k := 1; while (x <> f) and (l < r) do begin writeln(k,' ',l,' ',r,' ',x); k := k + 1; if f < x then r := x - 1 else l := x + 1; x := (l + r) div 2 end; writeln(k,' ',l,' ',r,' ',x); end.
var a,b,c,d:integer;
procedure nod(x,y:integer;var nod2:integer);
begin
while x<>y do begin
if x>y then begin
x:=x-y
end
else begin
y:=y-x
end
end;
nod2:=xend;
begin
write('a=');readln(a);
write('b=');readln(b);
write('c=');readln(c);
write('d=');readln(d);
nod(a,b,b);
nod(b,c,c);
nod(c,d,d);
writeln('nod=',d);
readln
end.