Используя тип данных массив.напишите программу,которая реализует алгоритм Эратосфена для вычисления простых чисел,меньше заданного n(n меньше =200)
Используя тип данных массив.напишите программу,которая реализует алгоритм Эратосфена для вычисления простых чисел,меньше заданного n(n <=200)
Ответ(ы) на вопрос:
Гость
//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.
Гость
//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.
Не нашли ответ?
Похожие вопросы