Sito Eratostenesa to algorytm wyznaczania wszystkich liczb pierwszych mniejszych od zadanej liczby, czyli przedziału [2, n].
Algorytm opracował grecki matematyk, filozof, atronom – Eratostenes.
def sieve_of_eratosthenes(num): prime = [True for i in range(num+1)] # tablica przechowująca flagi informujące, czy liczba jest pierwsza res = [] p = 2 while (p * p <= num): # Jeżeli flaga liczby p nie została zmieniona, to jest to liczba pierwsza if (prime[p] == True): # Zmiana flag wszystkich wielokrotności p for i in range(p * p, num+1, p): prime[i] = False p += 1 # Wypisz wszystkie liczby pierwsze for p in range(2, num+1): if prime[p]: print(p, end=" ") sieve_of_eratosthenes(30) # Wynik: 2 3 5 7 11 13 17 19 23 29