2016-04-13 11:08:28 +03:00
|
|
|
|
// "Решето Эратосфена" - вычисление простых чисел
|
2015-05-14 22:35:07 +03:00
|
|
|
|
const n = 100000;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
2020-07-26 13:07:35 +03:00
|
|
|
|
var primes := HSet(2..n);
|
2015-05-14 22:35:07 +03:00
|
|
|
|
|
2020-07-26 13:07:35 +03:00
|
|
|
|
for var i:=2 to Round(Sqrt(n)) do
|
2015-05-14 22:35:07 +03:00
|
|
|
|
begin
|
|
|
|
|
|
if not (i in primes) then
|
|
|
|
|
|
continue;
|
|
|
|
|
|
var x := i*i;
|
|
|
|
|
|
while x<=n do
|
|
|
|
|
|
begin
|
2020-07-26 13:07:35 +03:00
|
|
|
|
primes -= x;
|
2015-05-14 22:35:07 +03:00
|
|
|
|
x += i;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2020-07-26 13:07:35 +03:00
|
|
|
|
Writeln('Простые числа < ',n,':');
|
|
|
|
|
|
Writeln(primes);
|
|
|
|
|
|
Writeln;
|
|
|
|
|
|
Writeln('Время вычисления: ',Milliseconds/1000);
|
2015-05-14 22:35:07 +03:00
|
|
|
|
end.
|
|
|
|
|
|
|