StartAlgorytmyAlgorytmy arytmetyczneSito Eratostenesa
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Sito Eratostenesa
Ocena użytkowników:++++- / 19
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
wtorek, 26 lipca 2005 19:36
Około roku 200 p.n.e grecki matematyk Eratostenes podał algorytm na znajdowanie liczb pierwszych. Nazwa pochodzi od sposobu w jaki są one znajdowane. Wszystkie liczby po kolei przesiewa się - usuwane są spośród nich wszystkie wielokrotności danej liczby.
Przykład:
Odnajdziemy za pomocą sita Eratostenesa wszystkie liczby pierwsze z zakresu od 2 do 30.
Zapisujemy kolejno wszystkie liczby w tabeli.

23456789101112131415161718192021222324252627282930

Teraz bierzemy pierwszą liczbę z tabeli (2) i począwszy od następnej wykreślamy z niej wszystkie te liczby, które są przez nią podzielne.

23 5 7 9 11 13 15 17 19 21 23 25 27 29 

Bierzemy kolejną liczbę (3) i począwszy od następnej wykreślamy z tabeli podzielne przez nią.

23 5 7   11 13   17 19   23 25   29 

Kolejną liczbą w tabeli jest 5. Postępujemy jak poprzednio.

23 5 7   11 13   17 19   23     29 

W tym momencie możemy zakończyć nasze poszukiwania. Algorytm "mówi", że kolejne wykreślania należy powtarzać, nie dalej jak do liczby będącej zaokrąglonym w dół pierwiastkiem zakresu. U nas jest to: pierwiastek z 30 \sqrt{30}=5.4772255... , po zaokrągleniu w dół otrzymujemy 5. W tabeli zostały już tylko liczby pierwsze.



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński Ada
Implementacja w Ada
Implementacja w Ada
+++-- / 4
Tomasz Lubiński C# MS Visual Studio .net
Implementacja w C#
Implementacja w C#
+---- / 2
Tomasz Lubiński C/C++
Implementacja w C/C++
Implementacja w C/C++
++--- / 8
Marian C/C++ C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 6
Kamil Dębowski C/C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 2
Tomasz Lubiński Delphi/Pascal
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
++--- / 5
Tomasz Lubiński Java
Implementacja w Java
Implementacja w Java
+++-- / 3
gchlebus Java
Implementacja w Java
Implementacja w Java
++++- / 6
Jakub Konieczny Java Block
Implementacja w Java Block
Implementacja w Java Block
++++- / 1
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie



Poprawiony: poniedziałek, 18 lipca 2011 19:39

Dodaj komentarz

Kod antysapmowy
Odśwież