program Project1;var m:array of integer; n, i, old, Simple:integer;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;function IsSimple(const n: Integer): Boolean;var i: Integer;begin IsSimple:=True; for i:=0 to Length(m)-1 do begin if (n mod m[i])=0 then begin IsSimple:=False; Break; end; end;end;begin repeat write('n: '); readln(n); SetLength(m, Length(m)+1); m[Length(m)-1]:=n; until n<=0; SetLength(m, Length(m)-1); old:=nod(m[0], m[1]); for i:=2 to Length(m)-1 do old:=nod(old, m[i]); Writeln('Nod: ', old); simple:=0; for i:=0 to Length(m)-1 do if IsSimple(m[i]) then inc(simple); Writeln('Simple: ', simple); readln;end.Нахождение НОД всех чисел это нод(нод(А, Б), В) и т.д. Остальное думаю понятно.