Используя тип данных массив.напишите программу,которая реализует алгоритм эратосфена для вычисления простых чисел,меньше заданного n(n < =200)

OMEGA2281 OMEGA2281    3   27.08.2019 11:30    0

Ответы
Aemond Aemond  05.10.2020 22:42
//FPC 2.6.4
Program sieve_of_Eratosthenes;
var 
n, i, x:integer; 
a: array[1..32000] of boolean;
begin
 readln(n);
  for i:=2 to (n+1) div 2 do 
  begin
   x:=i*2;
    while x<=n do 
    begin
     a[x]:=true;
     x:=x+i;
    end;
    x:=0;
  end;
  for i:=1 to n do if not a[i] then write(i,' ');
 readln;
end.
ПОКАЗАТЬ ОТВЕТЫ
daryakotyukova daryakotyukova  05.10.2020 22:42
//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
const
    n = 200;

var
    primes: array of integer;

begin
    primes := ArrGen(n, i -> i);
    
    for var i := 2 to round(sqrt(n)) do
    begin
        if not (primes.Contains(i)) then
            continue;
        var e := SeqWhile(i*i, x -> x + i, x -> x <= n);
        primes := primes.Except(e).ToArray;
    end;
    
    writeln('Простые числа < ', n, ':');
    writeln(primes);
    writeln;
    writeln('Время вычисления: ', Milliseconds / 1000);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика