формировать массив из N чисел (N<=250):a[i]:=100sin(N+i*i). Сформировать массив b из целых частей абсолютных значений элементов массива a, являющихся простыми числами .Использовать алгоритм "решето" Эратосфена - Pascal(Паскаль)

uses crt;
var
a:array[1..250] of real;{массив по формуле}
b:array[1..250] of integer;{массив целых частей}
j,i,n:integer;
begin
clrscr;
repeat
write('n=');
readln(n);
until n in [1..250];{от 1 до 250}
writeln('Исходный массив абсолютных значений целых частей массива А:');
for i:=1 to n do
  begin
   a[i]:=100*sin(n+i*i);{считаем массив А}
   b[i]:=abs(trunc(a[i]));{создпем массив В}
   write(b[i],' ');{выводим его}
  end;
writeln;
for i:=2 to 7 do{проверяем делимость на эти числа, больше не надо, т.к. макисамально число=100
делиться макс может на 10, но 10 и 8 делятся на 2, а 9 на 3}
for j:=1 to n do
if ((b[j] mod i=0)and(b[j]<>0))or(b[j]=1)then b[j]:=0;{если делится и не ноль, или это один(не простое число), 
то заменяем на ноль}
{удаляем ноли из массива сдвигами влево, уменьшая размер массива}
i:=1;
while i<=n do
if b[i]=0 then
 begin
  for j:=i to n-1 do
  b[j]:=b[j+1];
  dec(n);
 end
else inc(i);
if n=0 then write('В массиве нет простых чисел!')
else
 begin
  writeln('Массив абслютных значений целых частей массива А, простых чисел:');
  for i:=1 to n do
  write(b[i],' ');
 end;
readln
end.

Leave a Comment

87 + = 90