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
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
Abgelegt unter
Primzahl,
prime,
Sieb,
sieve,
Eratosthenes,
prüfen,
proof,
check,
Zahl,
number,
Mathematik,
Mathe,
math.
4 Kommentare zum Snippet