Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1841 | Besucher online: 11
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Das Sieb des Eratosthenes


Autor: Klemens Nanni
Sprache: VB.NET
Bewertung: 5,8
(1 Bewertung)
Anzahl der Aufrufe: 5375
  
Kick it on dotnet-kicks.de  

Beschreibung:

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


Abgelegt unter: Primzahl, prime, Sieb, sieve, Eratosthenes, prüfen, proof, check, Zahl, number, Mathematik, Mathe, math.



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Firendeath schrieb am:  07.06.2010 15:29:17

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 14:53:28

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 23:39:45

Hier das versprochene Snippet.
http://dotnet-snippets.de/dns/das-sieb-von-atkin-SID1426.aspx
Klemens Nanni schrieb am:  16.08.2010 20:31:04

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.


Diese Snippets könnten für Sie interessant sein:
[C#] Prüfen ob eine Zahl eine Primzahl ist
[C#] PrimeNumberGenerator
[C#] PrimeNumberReader
[C#] Integers
[C#] Primzahl berechnen (optimiert)
[VB.NET] Effizientere Primzahlprüfung großer Zahlen
[VB.NET] Das Sieb von Atkin
[VB.NET] Primfaktorzerlegung
[VB.NET] Das Sieb von Atkin (2)
[VB.NET] Das Sieb von Atkin (2) - aktuell
[C#] prüfen ob String eine gültige IP ist
[C#] String auf Emailadresse prüfen
[C#] Windows Passwort überprüfen [Übersetzung]
[C#] Prüfen, ob exklusiver Zugriff auf eine Access-DB möglich ist
[ASP.net] Datei nach Bildupload prüfen
[C#] Kollision von zwei rechteckigen Objekten prüfen
[C#] Prüfen, ob eine Datei ausfürbar ist (.exe, .bat, etc.)
[C#] String auf erlaubte Zeichen prüfen
[C#] Prüfen ob aktueller Benutzer Administrator ist
[C#] Herausfinden, ob ein Programm (ProgramName) installiert ist.
[C#] Property auf Attribute prüfen Property.HasAttribute
[VB.NET] Permutation nachweisen
[VB.NET] Pandigitale Zahlen
[C#] Prüfung, ob bestimmtes Bit in Byte gesetzt ist.
[C#] Setzt ein bestimmtes Bit in einem Byte
[C#] Prüfen, ob Teil des .NET Frameworks
[C#] Programm RUN Check
[C#] prüfen ob eine Zahl gerade ist
[C#] Prüfen ob ein Text eine Zahl ist
[C#] Erweiterung für Stringumwandlungen
[C#] Beliebiges Zahlensystem in Dezimal umrechnen
[C#] Dezimalzahl in beliebiges Zahlensystem umrechnen
[VB.NET] Zahl mit Dezimalzahlstellen formatieren
[C#] Prüfung auf narzisstische Zahlen
[C#] Herausfinden, ob ein Character eine Zahl ist.
[VB.NET] Fibonacci-Folge iterativ erzeugen
[C#] Nummernformate beim Parsen fix festlegen
[C#] Create Directory
[C#] Summe 1..n berechnen
[C#] Fibonacci-Folge berechnen
[C#] n-te Fibonaccizahl rekursiv berechnen
[C#] Summe 1²...n² berechnen.
[C#] Summe 1³..n³ berechnen.
[C#] größten gemeinsamen Teiler berechnen.
[VB.NET] Multiplikation von übergroßen Zahlen
[C#] Dreiecksberechnung
[VB.NET] PI nach der Bailey-Borwein-Plouffe-Formel berechnen
[VB.NET] Quadratische Gleichung mit der PQ Formel lösen
[VB.NET] Basisrechenfunktionen für einen Kreis
[C++] Exponents
[C#] Quersummenberechnung
[C#] Geodaten in sexagesimal Format umrechnen
[VB.NET] Größten gemeinsamen Teiler berechnen
[VB.NET] Quadratwurzel ohne Sqrt() Funktion ziehen
[C#] Addiere alle ganzen Zahlen von x bis y
[C++] Caesar
[C#] "echte" Teiler Summe berechnen
[C#] Formelevaluierung aus RPN Form
[C#] CellMatrix
[C#] Maschinengenauigkeit
[C#] Flächenberechnungen am Kreis,Quadrat,Parallelogramm,Trapez
[C#] Bruch-Klasse
[VB.NET] einfacher rekursiver Mathe Parser
[VB.NET] Größter gemeinsamer Teiler
[VB.NET] Modulare Exponentation
[VB.NET] Werte zweier Variablen tauschen
[VB.NET] Ganzzahlige Wurzel
[VB.NET] Binäre Exponentation
[VB.NET] Größter gemeinsamer Teiler (2)
[VB.NET] Binomialkoeffizient
[VB.NET] Kleinster natürlicher Teiler > 1
[VB.NET] Dezimalzahl in Zahl der Basis b < 37 konvertieren
[C#] Berechnung der Entfernung zwischen GPS-Koordinaten
[C#] Wurzel und Potenz berechnen ohne Math-Klasse

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.