Sito Eratostenesa

Sito Eratostenesa
Ilustracja
Przykładowe działanie Sita Eratostenesa
Struktura danych

Tablica, lista

Złożoność
Czasowa

Pamięciowa

Sito Eratostenesa – przypisywany Eratostenesowi z Cyreny algorytm wyznaczania liczb pierwszych z zadanego przedziału [1].

Algorytm

Ze zbioru liczb naturalnych z przedziału tj. wybieramy najmniejszą, czyli 2, i wykreślamy wszystkie jej wielokrotności większe od niej samej, to jest

 2345678910
11121314151617181920
21222324252627282930
31323334353637383940
41424344454647484950
51525354555657585960

Z pozostałych liczb wybieramy najmniejszą niewykreśloną liczbę (3) i usuwamy wszystkie jej wielokrotności większe od niej samej: przy czym nie przejmujemy się tym, że niektóre liczby (na przykład 6 czy 12) będą skreślane więcej niż raz.

 2345678910
11121314151617181920
21222324252627282930
31323334353637383940
41424344454647484950
51525354555657585960

Według tej samej procedury postępujemy dla liczby 5.

 2345678910
11121314151617181920
21222324252627282930
31323334353637383940
41424344454647484950
51525354555657585960

Następnie dla 7 aż do sprawdzenia wszystkich niewykreślonych wcześniej liczb.

 2345678910
11121314151617181920
21222324252627282930
31323334353637383940
41424344454647484950
51525354555657585960

Wykreślanie powtarzamy do momentu, gdy liczba której wielokrotność wykreślamy, będzie większa niż

Dla danej liczby wszystkie niewykreślone liczby mniejsze, bądź równe są liczbami pierwszymi.

 2345678910
11121314151617181920
21222324252627282930
31323334353637383940
41424344454647484950
51525354555657585960

Powyższy algorytm można zapisać w postaci następującego pseudokodu[2]:

Wejście: liczba całkowita n > 1
 
Niech A będzie tablicą typów logicznych indeksowaną liczbami całkowitymi od 2 do n
początkowo wypełniona wartościami true
 
 for i := 2, 3, 4, ..., nie więcej niż 
  if A[i] = true:
    for j :=  2*i, 3*i, 4*i, ..., nie więcej niż n :
      A[j] := false
 
Wyjście: wartości i takie, że A[i] zawiera wartość true.

Zobacz też

Przypisy

  1. Eratostenesa sito, [w:] Encyklopedia PWN [online] [dostęp 2021-10-02].
  2. Eric W. Weisstein, Sieve of Eratosthenes, [w:] MathWorld [online], Wolfram Research [dostęp 2017-11-26] (ang.).

Linki zewnętrzne

Media użyte na tej stronie

Sieve of Eratosthenes animation.gif
Autor: SKopp z niemieckiej Wikipedii, Licencja: CC-BY-SA-3.0
Animation that visualizes the "Sieve of Eratosthenes" algorithm.
The Sieve of Eratosthenes is an method for efficiently finding all prime numbers up to a number, 120 in this case, by eliminating (colouring in) all multiples of successive primes. It uses the common optimisation of starting at p2 for each prime p, as all non-primes (composites) up to p2 were found in previous passes. Because of this it needs only consider primes up to 7, because the square of the next prime 11 is 121, larger than any number here.