Feedback

VB - Das Sieb des Eratosthenes

Veröffentlicht von am 22.04.2010
(1 Bewertungen)
Diese Funktion berechnet alle Primzahlen < n.
Als Optimierung habe ich gerade Zahlen übersprungen.

Alternativ können die gefundenen Zahlen auch in einer Liste gespeichert werden, welche dann zurückgegeben wird.

Mehr zum Sieb: http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes

Sieve of Eratos.: 664579 primes < 10^7 computed in 00:01.3361552

Sieve of Eratos.: 5761455 primes < 10^8 computed in 00:23.7904888

mm:ss.ms

Zum Vergleich: http://dotnet-snippets.de/dns/effizientere-primzahlpruefung-grosser-zahlen-SID1373.aspx
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

Sub eratos(ByVal l As Integer)
    Dim primes(l) As Boolean

    For i As Integer = 3 To Math.Sqrt(l) Step 2
        For j As Integer = i * i To l Step i
            primes(j) = True
        Next
    Next

    Console.WriteLine(2)
    For i = 3 To l Step 2
        If Not primes(i) Then Console.WriteLine(i)
    Next
End Sub

4 Kommentare zum Snippet

Firendeath schrieb am 07.06.2010:
Deine Bemühungen in allen Ehren aber guck dir mal diesen Post an http://forum.byte-welt.net/showpost.php?p=12074&postcount=26 <-- Post 26 & 27
Der ist umgerechnet fast 10x so schnell wie dein Programm.
Wollts nur gesagt habn trotzdem guter Code ;-)
Klemens Nanni schrieb am 16.07.2010:
Das Sieb von Atkin ist eine Optimierung des Sieb des Eratosthenes. Auch das wird bald als Snippet von mir hier veröffentlicht.
Klemens Nanni schrieb am 05.08.2010:
Hier das versprochene Snippet.
http://dotnet-snippets.de/dns/das-sieb-von-atkin-SID1426.aspx
Klemens Nanni schrieb am 16.08.2010:
Der Code wurde sichtlich entschlankt. Durch Verwendung eines Arrays anstatt einer Liste entfallen das Hinzufügen aller boolschen Werte und das Negieren jener geraden.

Die While-Schleife wurde durch eine For-Schleife ersetzt, was ebenfalls ein paar Zeilen einspart.
 

Logge dich ein, um hier zu kommentieren!