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;<br> 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.
Нахождение НОД всех чисел это нод(нод(А, Б), В) и т.д. Остальное думаю понятно.