Hat vielleciht jemand einen Vorschlag für einene verfahren, Primzahlen zu ermitteln?
Jede Zahl Modulo jeder Zahl unter ihr ist doch ziemlch langsam, auch wenn man vorher ersat mal mit modulo 2 und 5 vorsortiert.
Kennt jemand einen Algorythmus oderein verfahren, Primzahlenschnellerzu finden?
Grüße, Ryo
Programmieren - alles kontrollieren 4.937 Themen, 20.656 Beiträge
Sieb des Eratosthenes ist ziemlich fix, aber nicht die beste Methode glaube ich. Jede Zahl einzeln kannste in die Tonne treten.
Du machst dir am besten ein boolsches Array (geringer Speicherverbrauch und ist schnell).
Dann fängst du bei 2 an bis zu der Zahl die du ermittelt haben möchtest.
2 ist keine Primzahl, jedes ist immer das Vielfache von 2 eine Primzahl. Daher streichst du alles Vielfache von 2 (4, 6, 8, 10 etc.) indem du meinetwegen in die Stelle des Arrays auf True oder False setzt.
Dann gehst du wieder unüberprüft mit 3, also erhöhst immer um einen.
3 ist auch keine Primzahl und du setzt wieder in jede 6., 9. 12. Stelle usw. das Array auf True oder False (das kannst du nach Belieben machen).
Wenn du es später anzeigen willst nimmst du einfach alle Zahlen aus dem Array raus, welche du mit True oder Boolean als Primzahlen markiert hast.
Wenn du willst kann ich dir ein Delphi-Projekt dazu schicken. Aber ich vermute dass es noch bessere und schnellere Verfahren dazu gibt.