Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: unerklärlicher fehler bei nichtprimzahl-test

  Alt 18. Okt 2005, 18:45
Der Ansatz ist ja auch richtig. Nur muß man eben bedenken das einfache Primzahltests, und Fermat ist wohl einer der einfacheren, bei ganz bestimmten zusammengesetzten Zahlen scheitern. Diese Zahlen sind zb. die Carmichaelzahlen.

Auch mein Primzahltest basiert auf einem abgewandelten Fermat Verfahren. Auch dieser sogenannte SPP, strong Pseudo Primality Test, kann an den Carmichaelzahlen scheitern. ABER! mein Test benutzt eine Kombination aus mehreren SPPs zu festen Basen die mit allen Zahlen bis < 4759123141 = $11BAA74C5 schon duch andere Mathematiker ausgetestet worden sind. Es ist also garantiert das bei diesem Test mit Cardinals < 2^32 die Rückgabe der Funktion eindeutig eine Primzahl von einer zusammengesetzte Zahl unterscheidet.

Einbinden tuest du diese Unit ganz einfach. In der Uses Klausel deines Programmes "IsPrimeHRUnit" hinzufügen und in deinem Code dann IsPrime(Zahl) aufrufen, das wars.

Das meine Unit nun in Assembler gecodet ist und teilweise sehr aufwendige Verfahren benutzt liegt einzigst daran das sie auf einem Programierer Contest entstanden ist. Dabei ging es eben darum so schnell wie auf heitigen CPUs möglich zu ermitteln ob einen Zahl 2^32 eine Primzahl ist. Falls du weitergehendes Interesse daran hast dann schau mal hier rein http://dennishomepage.gugs-cats.dk/IsPrimeChallenge.htm

Gruß Hagen
  Mit Zitat antworten Zitat