Помогите написать программу в Pascal!
Дан одномерный
целочисленный массив А, состоящий из N элементов, N- заданное натуральное число, пусть max- наибольшее, min- наименьшее
значения среди элементов массива. Составить одномерный массив В из простых
чисел и сегмента [min,max],которые не являются элементами массива А, записав его
элементы в порядке неубывания. Если таких элементов нет, то выдать соответствующее
текстовое сообщение.
Answers & Comments
const n=5;
function prime(a:integer):boolean; //функция определяет, является ли число простым
var i,n:integer;
begin
prime:=false;
if (a<2) then exit;
if (not odd(a)) and (a<>2)
then exit;
for i:=3 to trunc(sqrt(a)) do
begin
if a mod i = 0 then exit;
inc(i,2);
end;
prime:=true;
end;
var a,b,c:array[1..n] of integer;
i,j,p,min,max:integer;
begin
for i:=1 to n do a[i]:=random(10); //заполняем массив
write('исходный массив: ');
for i:=1 to n do write(a[i]:5); //выводим массив на экран
writeln;
min:=a[1]; max:=a[1]; //ищем минимальное и максимальное значение
for i:=1 to n do
if (a[i]>max) then max:=a[i];
for i:=1 to n do
if (a[i]<min) then min:=a[i];
write('Минимальное: ',min,' Максимальное: ',max); //Выводим эти значения на экран
writeln;
for i:=1 to n do
if (prime(a[i])) or (a[i]=1) and (a[i]<>2) then //заполняем массив С простыми числами, которые (!) Входят в массив А
c[i]:=a[i];
write('Простые числа в массиве А: ');
for i:=1 to n do write(c[i]:5); //Выводим массив С на экран
writeln;
j:=min; //ВНИМАНИЕ!! Весь вопрос в этом небольшом блоке, заполнить массив В числами от min до max(которые уже найдены), не входящими в массив С
for i:=1 to n do begin
if (prime(j)) and (j<>c[i]) and (j<>2) then
b[i]:=j;
inc(j);
end;
for i:=n-1 downto 1 do begin //сортируем по возрастанию
for j:=1 to i do
if (b[j]>=b[j+1]) then begin
p:=b[i]; b[i]:=b[i+1]; b[i+1]:=p;
end;
end;
write('Искомый массив: ');
for i:=1 to n do write(b[i]:5); //Выводим массив В на экран
writeln;
end.