![]() |
Primzahlen bis ins Unendliche
Hallo,
ich habe mir mal überlegt, dass ich ein Programm schreibe, womit ich vielleicht die größte Primzahl die es gibt finden kann. *hust* (selten so gelacht) Wäre ein solches Programm möglich? Meine ersten Vorschläge werden bald kommen. |
Re: Primzahlen bis ins Unendliche
natürlich ist es möglich sogar recht einfach nur sehr CPU aufwendig und bis ins Unendliche kannst du sowieso vergessen weil ich glaub nicht des du unendlich lang zeit bzw. unendlich RAM hast. :zwinker:
Ich könnt dir jetzt natürlich beispil code schicken aber wo bleibt dann dein spass am progen. :mrgreen: Also Primzahlen sind zahlen die nur durch sich selber oder durch eins teilbar sind. Also: "Unendlich schleife" AktZahl +1 schleife von I := 2 bis aktzahl-1 wenn aktZahl mod I = 0 dann KEINE Primzahl wenn die abfrage niemals eintritt dann PRIMZAHL natürlich kann man des twas optimieren in dem man nur die hälfte der Schleife nimmt aber mehr sag ich nicht :-D Viel Spass |
Re: Primzahlen bis ins Unendliche
Naja, du kannst ein Programm schreiben, das immer die nächsthöhere Primzahl berechnet. Und nach unendlich viel Zeit wirst du dann die höchste Primzahl gefunden haben ;)
Man liest sich, Stanlay :hi: |
Re: Primzahlen bis ins Unendliche
Zitat:
|
Re: Primzahlen bis ins Unendliche
Ich bin mit Delphi ganz am Anfang. Ich kenne nicht viele Befehle^^.
|
Re: Primzahlen bis ins Unendliche
wenn du eine normale schleife nutzen willst bedenke das int64 nicht unendlich groß ist und somit die höchste schleifenzahl bereits feststeht.
|
Re: Primzahlen bis ins Unendliche
Dann such doch mal im Forum nach
![]() @Stanley: Sagen wir N ist die größe natürliche Zahl, dann kann ich immer noch eins dazu addieren und habe die nächste größte natürliche Zahl. Deine Aussage würde bedeuten, dass es nach N keine Primzahlen mehr gibt und das musst du erstmal beweisen. Solltest du es können, hättest du wohl eins der größten mathematischen Rätsel gelöst, nämlich ob die Reihe der Primzaheln endlich ist. @SirThornberry: Das stellt kein Hindernis da. Man kann sich auch einen Datentyp deklarieren, der keinerlei Begrenzungen hat, was die Größe angeht. Es gibt sogar schon Delphi Bibliotheken, die dies tun. |
Re: Primzahlen bis ins Unendliche
wie kenn ich Potenzen aus einer Basis und einem Exponent berechnen? Bräuchte einen Befehl wie sqr?
Ja immer +1. Das will ich ja auch nur das ich nicht bei 0 Starte sonder ich geb eine Potenz an. |
Re: Primzahlen bis ins Unendliche
Hi Tomislav,
mit den verschachtelten Schleifen wirst du wahrscheinlich nicht weit kommen, auch wenn du wie gsh schon sagte nur bis sqrt(n) und nicht bis n prüfst. Schau besser mal bei Wikipedia vorbei: ![]() Edit: Sieh dir mal die Funktion power an Gruß Christian |
Re: Primzahlen bis ins Unendliche
Zitat:
In der Wikipedia hab ich folgenden Text gefunden: Zitat:
mfg. Tubos |
Re: Primzahlen bis ins Unendliche
ok ich schreibe mir ein programm das anfängt bei 10 millionen stellen zu suchen^^ dann bekomme ich von einer stiftung wenn ich eine zahl finde 100.000$ das ist doch mal etwas^^
ich glaube ich häng das hier an den nagel |
Re: Primzahlen bis ins Unendliche
also zuerstmal:
Nach unserem Wissen gibt keine höchste Primzahl. Begründung: N ist unendlich. Die Primzahlfolge hört nicht auf. Wenn die Folge der Primzahlen irgendwann aufhören sollte (also es eine höchste gibt) so musst du mir das erstmal beweisen ;) zum Thema: wie immer wenn es um große (d.h. sehr große) Zahlen geht, verweise ich auf das DEC von Hagen Reddmann (im Forum negaH). Zur eigentlichen berechnung würde ich zunächst das Sieb des Erastothenes (oder wie der Kerl sich schreibt) empfehlen, da es einfach zu verstehen ist. Will man "etwas" höhere Zahlen Berechnen, so gibt es sog. Stempelverfahren....aber da kenne ich mich auch nicht so genau aus...hat aber Hagen auch hier mal was zu gesagt ...suchen ;) |
Re: Primzahlen bis ins Unendliche
Zitat:
|
Re: Primzahlen bis ins Unendliche
Zitat:
[quote]Wenn die Folge der Primzahlen irgendwann aufhören sollte (also es eine höchste gibt) so musst du mir das erstmal beweisen ;) Und genau das ist eben bisher weder bewiesen, noch widerlegt worden. |
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Freeware" nach "Programmieren allgemein" verschoben.
|
Re: Primzahlen bis ins Unendliche
Zitat:
ich glaube du kannst trotzdem nicht beliebig groß werden, der Speicher ist im Moment doch sehr endlich und damit dürfte irgendwann Schluß sein (und da es keinen Beweis für eine größte Primzahl gibt könnte es heißen dass der Speicher nicht reicht). Dürfte an sich aber wirklich keine Aufgabe für irgendeinen einzelnen Rechner sein, hat zufällig jemand im Kopf wie viel Stellen die im Moment größte Primzahl hatte? Und die großen werden schon nach den aktuell schnellsten bekannten Algorithmen in Clustern berechnet, die dann doch ein paar GFlops mehr haben dürften als ein normaler PC. Also sollte der erste Schritt (Luckie hat es implizit schon gesagt) sein, einen Algorithmus zu entwerfen, der mit deutlich geringerer Rechenzeit auskommt (am besten O(1) mit einem geringen konst. Faktor). Gruß Der Unwissende |
Re: Primzahlen bis ins Unendliche
Zitat:
und ich hab den Thread gefunden wo Hagen von den Stempeln / Sieben spricht: ![]() |
Re: Primzahlen bis ins Unendliche
Habe gerade bei heise online was zur größten bekannten Primzahl gefunden:
![]() Demnach hat die größte bekannte Primzahl 6.320.430 Stellen :shock: |
Re: Primzahlen bis ins Unendliche
Zitat:
|
Re: Primzahlen bis ins Unendliche
Zitat:
On February 18, 2005, Dr. Martin Nowak from Germany, found the new largest known prime number, 2^225,964,951-1. The prime number has 7,816,230 digits! It took more than 50 days of calculations on Dr. Nowak's 2.4 GHz Pentium 4 computer. The new prime was independently verified in 5 days by Tony Reix of Grenoble, France using a 16 Itanium CPU Bull NovaScale 5000 HPC running the Glucas program by Guillermo Ballester Valor of Granada, Spain. A second verification was completed by Jeff Gilchrist of Elytra Enterprises Inc. in Ottawa, Canada using 15 days of time on 12 CPUs of a Compaq Alpha GS160 1.2 GHz CPU server at SHARCNET. On December 16th one of GIMPS' computers reported a new Mersenne prime! An independent verification is expected to complete as early as December 25th. Full details about the new prime and its discoverer will be available shortly thereafter ![]() |
Re: Primzahlen bis ins Unendliche
[quote="Luckie"]
Zitat:
Zitat:
|
Re: Primzahlen bis ins Unendliche
Also rein aus Interesse: Was hat man gewonnen, wenn man vielleicht endgültig einmal die höchste Primzahl gefunden hat? Bringt das irgendwelche Durchbrüche in Technik oder Mathematik (neue Möglichkeiten?) ?
|
Re: Primzahlen bis ins Unendliche
Zitat:
|
Re: Primzahlen bis ins Unendliche
Ups...dann sollten die Herrn Mathematiker lieber aufhören zu suchen :mrgreen:
|
Re: Primzahlen bis ins Unendliche
Zitat:
|
Re: Primzahlen bis ins Unendliche
Zitat:
hier in etwa der beweis dass es unendlich viele primzahlen gibt: sagen wir man hat bereits die primzahlen P1, P2, ..., Pn gefunden. dann betrachtet man die Zahl P = (P1 * P2 * ... * Pn) + 1. ist dieses P eine primzahl, so ist diese größer als die bisher gefundenen Prinzahlen P1 .. Pn. Ist P keine Primzahl, muss P durch irgendeine Primzahl teibar sein, dabei kommen allerdings nicht die bisher gefundene Primzahlen P1 .. Pn in Frage, weil dann ja immer der Rest von 1 bleiben würde. also muss es eine Primzahl geben, durch die man P teilen kann, und die nicht unter den P1..Pn ist und von daher größer sein muss. d.h. aus beiden fällen folgt dass es noch eine weitere / größere primzahl nach den P1 .. Pn geben muss. |
Re: Primzahlen bis ins Unendliche
Zitat:
|
Re: Primzahlen bis ins Unendliche
Zitat:
d.h. du müsstest dann P doch wieder mit irgendwelchen Primzahltests testen, und dann kann man auch direkt irgendwelche anderen Zahlen nehmen ;) (am besten 2^Primzahl - 1) |
Re: Primzahlen bis ins Unendliche
hi,
ich finde das ein interessantes thema, darum habe ich mal schnell ein kleines programm gemacht um ein paar primzahlen aufzuschreiben... ich hatte geduld bis ich bei ca. 2 Mio war, dann wurde es langweilig... als mein lüfter im laptop plötlich ziemlich fest begann zu kühlen schaute ich im Taskmanager mal die CPU-Auslastung an. CPU-Auslastung während das Programm lief: 100% Konstant :shock: CPU-Auslastung nach dem Beenden des Programmes: 4% ich denke, es würde noch ein weilchen dauern bis ich die grösste primzahl gefunden habe... |
Re: Primzahlen bis ins Unendliche
Es gibt unendlich viele Primzahlen. Daraus folgt das EINE der unendlich vielen und unendlich großen Primzahlen auch unendlich viel Speicher benötigt und zu deren Berechnung/Verifikation unendlich viel Zeit notwendig wäre. Also mehr Zeit als es Zeit gibt und Speicher als es Universen geben wird.
Der Wunsch DIE größte Primzahl zu finden kann sich also nur darauf beziehen die zum heutigen Zeitpunkt bekannte größte Primzahl mit einer noch größeren Primzahl zu übertreffen. Das macht druchaus Sinn wenn man nicht nur die Primzahl ansich betrachtet sondern das nötige Knowhow diese zu finden und zu verifizieren ! Man benötigt also bestes mathematisches Wissen, modernste Algorithmen und natürlich die beste verfügbare Hardware. Sogesehen ist das Ziel die größte dem Menschen bekannte Primzahl zu finden ein Motor um Entwicklungen in der Mathematik, Informatik, distibuted Computing und Hardware voranzutreiben. Mit dem DECMath hat man zwar eine Grundlage sowas erreichen zu können, aber alle im DECMath enthaltenen fertigen Primzahlfunktionen erzeugen nur sogenannte Industrielle Primzahlen. Das sind defakto Pseudoprimzahlen ohne matheamtisch beweisbares Zertifikat das sie wirklich Primzahlen sind. Die Wahrscheinlichkeit das sie eben keine Primzahlen sind ist so gewaltig gering das es im industriellen Einsatz vernächlässigt werden kann. Mathematisch gesehen sind es aber eben keine bewiesenermaßenen Primzahlen. Gruß Hagen |
Re: Primzahlen bis ins Unendliche
Und pünktlich zur Diskussion wurde eine neue mersennesche Primzahl gefunden.....
Zitat:
![]() |
Re: Primzahlen bis ins Unendliche
ich habe jetzt folgendes Programmiert:
Delphi-Quellcode:
function ist_prim (zahl: longint): boolean;
var teilbar : boolean; i : longint; str : string; str_ : string; str_3 : string; begin str := ''; str_ := ''; str_3 := ''; teilbar := true; i := 2; While i <= sqrt(zahl) do begin str := Inttostr(i); If length(Str) >2 then begin str_ := str[length(str)]; str_3 := str[length(str) - 2] + str[length(str) - 1] + str[length(str)]; If (str_ = '2') and (str_ = '4') and (str_ = '6')and (str_ = '8') and (str_ = '0') then result := false; If (Strtoint(str_3) mod 8 = 0) then result := false; If Quersumme(i) mod 3 = 0 then result := false; if Quersumme(i) mod 9 = 0 then result := false; end; If (Zahl mod i=0) and (i<>zahl) then begin teilbar := false; end; inc(i); end; result := teilbar; end; und zum aufrufen:
Delphi-Quellcode:
jetzt ist die frage, wie bekomme ich das hin das ich das bis ins unendliche mache und wie mach ich das schneller?=
For i := 1 to Strtoint(Edit1.Text) do begin
If ist_prim(i) then begin Form1.caption := inttostr(i); Memo1.Lines.add (Inttostr(i)); end; Form1.Refresh; end; |
Re: Primzahlen bis ins Unendliche
Hallo Sascha,
Zitat:
Deine Schleife fängt bei 1 an und zählt in Einer-Schritten weiter. D.h. jede zweite Zahl, welche Du testest, ist sowieso schon nicht prim, weil Sie durch 2 teilbar ist. Die erste Optimierung wäre also, die geraden Zahlen zu überspringen. Beginne mit 3 und zähle in Zweierschritten weiter Inc(i, 2); Du verwendest als Variablen-Bezeichner Str, Str_ und Str3. Der Name "Str" ist schon durch eine Delphi-eigene Funktion belegt, das verwirrt hier nur. Denke Dir eigene Namen für Deine Variablen aus. Beim schnellen überfliegen Deines Codes habe ich auch Str und Str_ nicht auseinander halten können. Wähle sinnvolle Bezeichner ("Ziffer"). String-Operationen sind sehr langsam im Vergleich zu numerischen Operationen. Du wandelst die Zahl in einen String, um dann an die einzelnen Ziffern zu gelangen. Das kostet extrem viel Rechenzeit. Da Du ohnehin nur die einzelnen Ziffern zwischenspeicherst, ist String auch der ungeeignete Datentyp. "Char" reicht dafür aus, belegt nur ein Byte und kommt ohne den ganzen Overhead aus, der Strings so bequem macht. Deine "Zahl" ist vom Typ "Longint"; die größte Zahl, die Du damit verarbeiten kannst, ist 2^31 = 2.147.483.647, also eine Zahl mit 10 Stellen. Zum Vergleich: Die ![]() Dein "Hauptfenster" führt bei jeder Zahl ein Refresh durch; auch das kostet viel Zeit. Zähle mit, wieviele Zahlen du geprüft hast und mach ein Refresh z.B. nur nach jeweils 100 geprüften Zahlen. Oder nur dann, wenn Du eine Zahl als prim identifiziert hast. Wenn Du Dir also die ![]() Achim |
Re: Primzahlen bis ins Unendliche
Hallo erstmal,
also ein für allemal: Es gibt KEINE höchste Primzahl! Der Beweis ist ganz einfach: Die höchste Primzahl nennen wir:
Code:
Man reihe die Menge aller Primzahlen nacheinander auf:
Pmax
Code:
Nun multiplizieren wir all diese Zahlen:
2, 3, 5, 7, .............. bis Pmax
Code:
und erhalten eine Zahl,die wir PM nennen und die durch alle Primzahlen zu teilen ist
2*3*5*7*.....*Pmax
(Primfaktorzerlegung) also:
Code:
Nun addieren wir zu dieser Zahl PM die Zahl 1, aso:
2*3*5*7*.....*Pmax = PM
Code:
und diese neue gewonnene Zahl ist erneut eine Primzahl, da sie durch
PM + 1
keine Zahl zu teilen ist!!!! Da man Pmax beliebig definieren kann gibt es folglich KEINE höchste Primzahl. Gruß icqgoofy |
Re: Primzahlen bis ins Unendliche
Dein Beweis hinkt an einer Stelle:
Warum ist PM + 1 eine Primzahl? Ist für mich nicht ersichtlich... |
Re: Primzahlen bis ins Unendliche
Hi,
"Ganz einfach", weil jene Zahl, weder durch 2, 3, 5, 7, ....... noch Pmax teilbar ist, da ja die VORGÄNGERZAHL durch all diese Zahlen teilbar ist. Und da es auf Grund der Primfaktorzerlegung KEINE anderen Zahlen geben kann, durhc die jene Zahl teilbar ist, da, wie der Name schon sagt, die Primfaktorzerlegung eine Zahl in alle in ihr befindlichen Primzahlen zerlegt, und da ALLE Primzahlen in der VORGÄNGERZAHL enthalten sind, MUSS diese Zahl eine Primzahl sein. Gruß icqgoofy |
Re: Primzahlen bis ins Unendliche
Zitat:
|
Re: Primzahlen bis ins Unendliche
Gut:)
Wow, ich glaube das war der ERSTE Beitrag den ich in diesem Forum beantwortet hab:D Bin sonst ein reiner Fragensteller. (bin jo ach noch net lange dabei) Gruß icqgoofy |
Re: Primzahlen bis ins Unendliche
Wurde das nun nicht schon 3-4 Mal erklärt? ;)
Hier gehts inzwischen auch mehr um das Ermitteln einer hoheh Primzahl, nicht die höchste :) air |
Re: Primzahlen bis ins Unendliche
Zitat:
In Kombination mit der DEC ist es doch super-einfach...oder seh ich da was falsch? PseudoCode:
Delphi-Quellcode:
Überlegung:
While not Abgebrochen do
begin AktPrime:=(AktPrime-1)*AktPrime+1; Output(AktPrime); end; Eine neue Primzahl kann man berechnen aus der letzten primzahl multipliziert mit derm Produkt aller Primzahlen davor... Gleichzeitig ist aber das Produkt aller davor gleich der aktuellen primzahl-1 somit sei die neue primzahl die alte mal die alte minus eins. mit dem Startwert 2 gäbe das: (2-1)*2+1 = 3 (3-1)*3+1 = 7 (7-1)*7+1 = 43 sind zwar längst nicht alle (da fehlen aber sehr viele :shock: ) aber es sind offensichtlich primzahlen.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz