Code-Beispiel
1 Mio Primzahlen berechnen
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | ytwinky | 05.02.2012 |
volta hat im deutschen Forum mal ein Programm vorgestellt, mit dem 1 Mio
(in Worten: Eine Million) Primzahlen ermittelt werden können.
Der Forumslink führt auch zu den anderen dort vorgestellten Programmen.
Hier nun die Primzahlen-Ermittlung in einer leicht überarbeiteten Version.
Wer es WIRKLICH will, startet das Programm von der Befehlszeile aus mit dem Parameter '/a' und
erhält nach (sehr) langem Warten eine Liste von 1 Mio Primzahlen..
'Primzahlen von volta
'leicht überarbeitet von ytwinky
#include "vbcompat.bi"
Const As UInteger N=15485863 'bis zu diesem Wert 1.000.000 Primzahlen finden
ReDim As Byte Sieb(2 To N)
Dim As Integer i, c=0, j, delta, sqr_N=Sqr(N), PrintIt=lcase(Command(1))="/a"
Dim As Double Dauer, Zeit=Timer
For j=4 To N Step 2 'gerade Zahlen
Sieb(j)=1 'sind keine Primzahlen
Next
For j=3 To sqr_N Step 2
If Sieb(j)=0 Then '= Primzahl zB. j=3
delta=2*j 'delta = 6
For i=3*j To N Step delta '9; 15; 21; 27; 33 ...
Sieb(i)=1 'keine Primzahl
Next
End If
Next
Zeit=Timer-Zeit
Dauer=Timer
For i=2 To N
If Sieb(i)=0 Then
If PrintIt Then Print i, 'Achtung Anzeige dauert lange(wirklich..)
c += 1
End If
Next
If PrintIt Then Print !"\nAusgabedauer:" & Format(Timer-Dauer, "#,##0.00") &" Sekunden"
Print Format(c, "#,##0") &" Primzahlen in " & Format(Zeit, "#,##0.00") &!" Sekunden gefunden\nfertich..";
GetKey
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 05.02.2012 von ytwinky angelegt.
- Die aktuellste Version wurde am 05.02.2012 von ytwinky gespeichert.
|
|