Entwickler-Ecke
Sonstiges (Delphi) - Primzahlen
Fabian - Mo 12.08.02 17:24
Titel: Primzahlen
Hallo
Wie kann ich prüfen ob es sich bei einer Zahl um eine Primzahl handelt.
(Ob sie durch 1 und sich selbst teilbar ist).
lemming - Di 13.08.02 08:59
Hey Fabian,
ich mache gerade auch was in Delphi mit Primzahlen. Hab hier schon einen unoptimierten Code.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| repeat iCount := iCount + 1; bNoPrim := False; for iNummeric := iCount - 1 DownTo 2 do if Pos(',', FloatToStr(iCount / iNummeric)) = 0 then begin Writeln(IntToStr(iCount) + ' teilbar durch ' + IntToStr(iNummeric)); bNoPrim := True; Break; end; if bNoPrim = False Then Writeln(IntToStr(iCount) + ' PRIM'); until iCount = 9223370000000000000; |
Unoptimiert deshalb weil er tausende unnützer rechen operatoren macht. Alle Zahlen die gerade sind brauch er ja gar nicht erst probieren.
Mein größeres Problem ist aber eher das ich Primzahlen mit über 4 Millionen stellen berechnen will, und das geht halt nicht mit Int64. Da hab ich nur 19.[/code]
MathiasH - Di 13.08.02 12:19
@ lemming: du kannst ja die halbe unit math und das ganze zeug neu schreiben, da kannst du deinen Datentyp (fast) so gros wie du willst machen, die Frage ist nurnoch ob der CPU damit vernünfig arbeitet und du für die Sache kein PRMI@home starten musst :wink:
MathiasH
Alfons-G - Di 13.08.02 12:39
Es gibt bei Torry eine Bibliothek BigMath oder BigNum oder so ähnlich zum Download, mit der man (fast) beliebig grosse Zahlen verarbeiten kann. Such mal dort mit dem Stichwort math.
:idea:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!