Mersenne number primality test program

Die Welt der Zahl. Interessierst Du Dich für Primzahlen, Mersenne Primzahlen und für die Mathematik? Hier findest Du interessante Verlinkungen zu Seiten und Projekten
Benutzeravatar
Sternenlicht
Administrator
Beiträge: 134
Registriert: 29.04.2018, 14:38:26
Wohnort: Dortmund

Re: Primzahlen im 100-stelligem Bereich mit Pascal

Beitrag von Sternenlicht »

Hallo lieber Pedaltreter,

es ist natürlich klar, dass die Berechnungen von Primzahlen immer länger dauern, je größer die zu berechnende Zahl wird. Erschwerend wirkt es sich zeitlich auch noch darauf aus, dass mit Strings gerechnet wird, anstatt mit Real-, Extended- bzw. Integer- Zahlen.

Die von mir dargelegten Routinen mit String Berechnungen funktionieren lediglich, auch wenn sie zeitintensiver sind. Außerdem können die Routinen sicherlich, sofern sie zur Berechnung von Primzahlen eingesetzt werden, noch verfeinert und effektiver programmiert werden. Bei der Berechnung von Primzahlen müssen nicht alle Fehlerüberprüfungen vorgenommen werden, wie sie in die einzelnen Funktionen eingesetzt wurden, weil die Fehler von vornherein vermieden werden können. Auch die Überprüfung auf negative Zahlen kann wegfallen, weil dies nur Zeit kostet und negative Zahlen bei der Primzahlberechnung wohl nicht vorkommt.

Weitere Optimierungen können bei der schriftlichen Division vorgenommen werden. Zum Beispiel basiert diese hauptsächlich auf das Subtrahieren. Sollte der Divisor noch im Wertebereich von int64 Variablen sein, wäre die Subtraktion mit Integer in Erwägung zu ziehen.

Auch die Optimierung des Wurzelziehens sollte in Betracht gezogen werden. Bei meiner Berechnung wurde ein Algorithmus der schrittweisen Annäherung herangezogen. Kann man machen, es gibt jedoch auch andere Algorithmen, wie zum Beispiel die Ansicht eines Geometriebeispiels: Möchte ich die Wurzel aus 25 ziehen, kann ich mir ein Rechteck vorstellen von 25 * 1. Jetzt versuche ich das Rechteck zu einem Quadrat zu führen: 2 * 12.5, 3 * 8.3, bis ich auf 5 * 5 komme.

Letzten Endes bleibt zu überlegen, ob die String Berechnung wirklich das Optimalste ist, oder ob es noch andere Möglichkeiten gibt. Meine dargelegten Routinen waren nur ein funktionales Beispiel, was sich sicherlich auf vielfältiger Weise optimieren lässt.

Liebe Grüße, das Sternenlicht...
Guten Morgen!

Hier spricht das Universum!
Ich werde mich heute um all Deine Probleme kümmern!
Dazu benötige ich Deine Hilfe nicht!

Also genieße den Tag!

Zurück zu „Mathematik“