//Могу ошибаться, тестов не проводил
//a
Type
procedure proi(n:integer; var p:integer);
i:integer;
begin
p:=1;
for i:=1 to n do
if ar[i]<0 then p:=p*ar[i];<br>end;
//б
procedure proi(n:integer; var ar:array of integer);
i,p,k:integer;
b:boolean;
begin
p:=1;
k:=0;
b:=true;
while p begin
p:=p+1;
for i:=2 to p div 2 do
if p mod i=0 then
begin
b:=false;
break;
end;
if b=true then
begin
k:=k+1;
setlength(ar,k+1);
ar[k]:=p;
end;
b:=true;
end;
end;