Kim Walisch
Primzahlenprogramm Prim V4.0 (12.05.2002)
Beschreibung | Parameter | Programmierung | Download | zurück
1. Beschreibung
Prim V4.0 basiert auf dem Sieb des Eratosthenes und sucht alle Primzahlen und Primzahlzwillinge
in einem bestimmten Intervall.
Das Programm berechnet zuerst alle Primzahlen bis zur Quadratwurzel der Endzahl, dann
wird ein Array(Feld) angelegt in dem alle Vielfachen, der zuvor gesuchten Primzahlen,
gestrichen werden. Alle Zahlen die am Ende dieses Vorgangs übrig bleiben sind
Primzahlen.
Während des Vorgangs werden die beiden letzten Primzahlen jeweils miteinander
verglichen, beträgt die Differenz 2 wurde ein Primzahlzwilling gefunden.
Der aktuelle Stand der Suche wird immer auf dem Bildschrim angezeigt. Am Ende werden
die Anzahl der gefundenen Primzahlen, Primzahlzwillinge und die dafür benötigte
Zeit ausgegeben.
2. Parameter
-? zeigt die Hilfe an.
-shp zeigt die Primzahlen auf dem Bildschirm an.
-sht zeigt die Primzahlzwillinge auf dem Bildschirm an.
-sap speichert die Primzahlen in eine Text-Datei.
-sat speichert die Primzahlzwillinge in eine Text-Datei.
Dateien:
Primzahlen von 1 - 10.000 erzeugt mit Prim V4.0
Primzahlzwillinge von 1 - 10.000 erzeugt mit Prim V4.0
3. Programmierung
Das Programm ist in C++ Programmiert und benutzt den Variablentyp 'unsigned long
long int', d.h bis 2^64. Ich habe den Quelltext der vorherigen Version nochmal stark
obtimiert, das Programm arbeitet jetzt fast ausschliesslich mit Pointern. Dennoch ist
es minimal langsamer, das hängt an den 64bit(vorher 32bit) und an der neuen Funktion
für Primzahlzwillinge. Als Kompiler habe Djgpp benutzt weil der meiner Erfahrung
nach der schnellste ist.
Daten:
Getestet auf einem Intel Pentium 550 MHZ mit 128 MB RAM
x |
Prims(x) |
Twins(x) |
Time |
10 |
4 |
2 |
< 0.001 sek |
10^2 |
25 |
8 |
< 0.001 sek |
10^3 |
168 |
35 |
< 0.001 sek |
10^4 |
1229 |
205 |
< 0.001 sek |
10^5 |
9592 |
1224 |
< 0.001 sek |
10^6 |
78498 |
8169 |
0.055 sek |
10^7 |
664579 |
58980 |
0.330 sek |
10^8 |
5761455 |
440312 |
3.571 sek |
10^9 |
50847534 |
3424506 |
49.176 sek |
10^10 |
455052511 |
27412679 |
8.716 min |
10^11 |
4118054813 |
224376048 |
100.907 min |
4. Download
5. Kontakt
Bei Fragen, Anregungen, Vorschlägen, Kritiken und Bug-Reports schicken Bitte an Kim Walisch eine E-Mail (kim.walisch@gmail.com)
Kim Walisch arbeitet ständig weiter an der Vervollkommnung seines Programmeshttp://code.google.com/p/primesieve