Алгоритм решения состоит в том, что происходит генерация подмножеств (перевод в бинарный код способом из десятичного в двоичное значение) и проверка каждого кода по условию.
program poisk;
var
x,y,z,i,j,t,rez,rez1,prost: integer;
a1,b1: array [1..5] of integer;
label 10;
begin
writeln('Введите элементы множества A');
for i:=5 downto 1 do
begin
readln(y);
b1[i]:=y;
end;
for i:=1 to 31 do
begin
x:=i;
t:=0;
for j:=1 to 5 do
a1[j]:=0;
while x<>1 do
begin
z:=x mod 2;
x:=x div 2;
t:=t+1;
a1[t]:=z;
end;
t:=t+1;
a1[t]:=1;
rez:=0;
for j:=5 downto 1 do
rez:=b1[j]*a1[j]+rez;
prost:=1;
rez1:=rez;
if (rez=1) or (rez=2) then goto 10;
for j:=2 to rez1-1 do
if (rez mod j)=0 then prost:=0;
10: if prost=1 then
begin
for j:=5 downto 1 do
if a1[j]=1 then
begin
write(b1[j]);
write(',');
end;
writeln;
end;
end;
readln;
end.