Implementacja algorytmu
Przykład implementacji sita Eratostenesa w języku Python
Najważniejsze elementy przedstawionego kodu:
obiekt
lista_liczbbędzie wynikową listą liczb pierwszych w przeszukiwanym zakresie;indeksy obiektu
listasą reprezentacją zbioru liczb naturalnych z zakresu[0, n].Początkowo wszystkie elementy traktowane są jako liczby „pierwsze” i mają wartość1(poza elementem o indeksie0). Później (zgodnie z algorytmem) niektóre z nich będziemy eliminować („wykreślać”), zastępując je zerami;zmienna
max_liczbama wartość pierwiastka kwadratowego zn, który określa górną granicę liczby, której wielokrotność wykreślamy. Zgodnie z algorytmem pierwsza pętla działa od liczby2do pierwiastka z liczbyn(więc jako argumenty funkcjirange()musimy wpisaćrange(2, max_liczba+1)).
Jeśli podczas wykonywania pętli wartość elementu lista[indeks] (linia nr 7) będzie wynosić 1 (element będzie liczbą pierwszą), wówczas w wewnętrznej pętli usuwamy jej wielokrotności.
Na końcu sprawdzamy wszystkie elementy obiektu lista. Liczbami pierwszymi są indeksy elementów o wartości 1. Dopisujemy je do obiektu lista_liczb, a wynik wypisujemy.
Efekt działania programu dla liczb z zakresu od 2 do 120:
Możemy wprowadzić pewne elementy modyfikujące działanie funkcji. Spróbujmy zdefiniować funkcję sito_eratostenesa_for(n) w taki sposób, aby dla n < 2 nie próbowała ona nic obliczać, ale zwracała wartość False.
Słownik
liczba naturalna większa od 1, mająca tylko dwa dzielniki – 1 oraz siebie samą
pętla, która znajduje się wewnątrz innej pętli