import
from math import sqrt, floor
var
n =
numbers: seq[Natural] =
primes: seq[Natural] =
for i in 2..n:
numbers.
var flag = true
var ip = 0
while
var
var
p =
var newNumbers
newNumbers: seq[Natural] =
var deleted = 0
primes.add(p) #
if p * p > n:
break # ???????????????????????????????????????
for i, v in
if
primes.add(v)
newNumbers.
deleted += 1
elif v / p == floor(v / p):
newNumbers.delete(i - deleted)
deleted += 1
# ???????????????????????????????????????
numbers = newNumbers
if ip >= len(numbers): # ?????????
primes &= numbers #
flag = false # break
echo "---Result---"
echo