Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Primzahlen bis ins Unendliche (https://www.delphipraxis.net/59556-primzahlen-bis-ins-unendliche.html)

Tomislav 24. Dez 2005 09:07


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.

gsh 24. Dez 2005 09:23

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

Stanlay Hanks 24. Dez 2005 09:24

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:

Luckie 24. Dez 2005 09:28

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Stanlay Hanks
Und nach unendlich viel Zeit wirst du dann die höchste Primzahl gefunden haben ;)

Überleg dir diese Aussage noch mal. ;)

Tomislav 24. Dez 2005 09:33

Re: Primzahlen bis ins Unendliche
 
Ich bin mit Delphi ganz am Anfang. Ich kenne nicht viele Befehle^^.

SirThornberry 24. Dez 2005 09:35

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.

Luckie 24. Dez 2005 09:40

Re: Primzahlen bis ins Unendliche
 
Dann such doch mal im Forum nach Hier im Forum suchenPrimzahl. Aber ich sag dir eins, mit den herkömmlichen Verfahren wirst du nicht weit kommen. Und deine dir zur Verfügung stehende Rechenleistung wird nicht ausreichen, um in akzeptabler zeit Zeit überhaupt in die Nähe der bisher größten bekannten Primzahl zu kommen.

@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.

Tomislav 24. Dez 2005 09:42

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.

Chris1986 24. Dez 2005 09:46

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: http://de.wikipedia.org/wiki/Primzahltest

Edit: Sieh dir mal die Funktion power an

Gruß
Christian

Tubos 24. Dez 2005 09:54

Re: Primzahlen bis ins Unendliche
 
Zitat:

Solltest du beweise können, [ dass es eine höchste Primzahl gibt, ] hättest du wohl eins der größten mathematischen Rätsel gelöst, nämlich ob die Reihe der Primzaheln endlich ist.
Rätsel?
In der Wikipedia hab ich folgenden Text gefunden:
Zitat:

Nach dem dirichletschen Primzahlsatz gibt es unendlich viele Primzahlen jeder der beiden Arten.
...
Der Grieche Euklid hat im vierten Jahrhundert vor Christus festgestellt, dass es unendlich viele Primzahlen gibt; diese Aussage wird als Satz von Euklid bezeichnet. Euklid führte einen Widerspruchsbeweis für die Richtigkeit dieses Satzes: Geht man von der Annahme aus, dass nur endlich viele Primzahlen existieren, so folgt daraus die Existenz einer weiteren Primzahl, was einen logischen Widerspruch zur Annahme darstellt. Folglich ist die Annahme falsch, und es gibt unendlich viele Primzahlen. Heute kennt man eine ganze Reihe von Beweisen für den Satz von Euklid.
Nur der Richtigkeit halber.

mfg. Tubos

Tomislav 24. Dez 2005 09:54

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

glkgereon 24. Dez 2005 09:55

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 ;)

Stanlay Hanks 24. Dez 2005 09:55

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Luckie
@Stanlay:
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.

Mir ist durchaus bewusst, dass, was ich geschrieben habe, mathematisch nicht korrekt war. Ich wollte nur sagen, dass es recht unwahrscheinlich ist, dass er unendlich viel Zeit hat. ;)

Luckie 24. Dez 2005 09:56

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von glkgereon
Nach unserem Wissen gibt keine höchste Primzahl.

Das würde ich nicht so laut sagen, denn wie du selbst sagst:
[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 24. Dez 2005 09:58

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Freeware" nach "Programmieren allgemein" verschoben.

Der_Unwissende 24. Dez 2005 09:58

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Luckie
@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.

Hi,
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

glkgereon 24. Dez 2005 10:01

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von glkgereon
Nach unserem Wissen gibt keine höchste Primzahl.

Das würde ich nicht so laut sagen, denn wie du selbst sagst:
Zitat:

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.

Und solange es nicht wiederlegt wurde gilt meiner Auffassung nach "In dubio pro reo"....im Zweifel stimmts ^^

und ich hab den Thread gefunden wo Hagen von den Stempeln / Sieben spricht:
hier

Chris1986 24. Dez 2005 10:06

Re: Primzahlen bis ins Unendliche
 
Habe gerade bei heise online was zur größten bekannten Primzahl gefunden:
http://www.heise.de/newsticker/meldung/56641

Demnach hat die größte bekannte Primzahl 6.320.430 Stellen :shock:

Tubos 24. Dez 2005 10:41

Re: Primzahlen bis ins Unendliche
 
Zitat:

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.
Das ist widerlegt worden. Siehe mein erstes Posting.

Amateurprofi 24. Dez 2005 10:48

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Chris1986
Habe gerade bei heise online was zur größten bekannten Primzahl gefunden:
http://www.heise.de/newsticker/meldung/56641

Demnach hat die größte bekannte Primzahl 6.320.430 Stellen :shock:


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

http://www.mersenne.org/

Nils_13 24. Dez 2005 10:51

Re: Primzahlen bis ins Unendliche
 
[quote="Luckie"]
Zitat:

Zitat von glkgereon
Nach unserem Wissen gibt keine höchste Primzahl.

Das würde ich nicht so laut sagen, denn wie du selbst sagst:
Zitat:

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.
Irgendwann wird die Wahrscheinlichkeit geringer, da es immer mehr Zahlen gibt, die passen, müsste man erst ausrechnen :mrgreen:

Stanlay Hanks 24. Dez 2005 11:01

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?) ?

Khabarakh 24. Dez 2005 11:09

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Stanlay Hanks
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?) ?

Nein, denn es ist ja schon bewiesen worden, dass es keine größte Primzahl gibt :wink: . Wenn du sie aber trotzdem fändest, hieße es, dass seit Euklid unsere Mathematik falsch ist :mrgreen: .

Stanlay Hanks 24. Dez 2005 11:12

Re: Primzahlen bis ins Unendliche
 
Ups...dann sollten die Herrn Mathematiker lieber aufhören zu suchen :mrgreen:

Luckie 24. Dez 2005 11:13

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Nils_13
Irgendwann wird die Wahrscheinlichkeit geringer, da es immer mehr Zahlen gibt, die passen, müsste man erst ausrechnen :mrgreen:

Das würde bedeuten, dass die Häufigkeit der Primzahl abnehmen würde, je höher ich mich im Zahlenbereich befinde, aber auch das wurde noch nicht bewiesen.

BlackJack 24. Dez 2005 11:24

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Luckie
Und genau das ist eben bisher weder bewiesen, noch widerlegt worden.

klar ist das schon bewiesen worden dass es unendlich viele primzahlen gibt. was du vielleicht meinst ist der meines wissens nach noch ausstehende beweis ob es unendlich viele primzahlzwillinge gibt.

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.

glkgereon 24. Dez 2005 11:29

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von BlackJack
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.

Könnte man nicht nach diesem Verfahren neue Primzahlen errechnen?

BlackJack 24. Dez 2005 11:32

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von glkgereon
Zitat:

Zitat von BlackJack
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.

Könnte man nicht nach diesem Verfahren neue Primzahlen errechnen?

nein, denn du weisst ja nicht, ob P eine Primzahl ist oder nicht, da das in dem beweis ja im endeffekt keine rolle spielt.
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)

100nF 24. Dez 2005 12:31

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...

negaH 25. Dez 2005 06:53

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

Amateurprofi 25. Dez 2005 07:57

Re: Primzahlen bis ins Unendliche
 
Und pünktlich zur Diskussion wurde eine neue mersennesche Primzahl gefunden.....

Zitat:

On December 15, 2005, Dr. Curtis Cooper and Dr. Steven Boone, professors at Central Missouri State University, discovered the 43rd Mersenne Prime, 230,402,457-1. The CMSU team is the largest contributor to the GIMPS project.

The new prime is 9,152,052 digits long. This means the Electronic Frontier Foundation $100,000 award for the discovery of the first 10 million digit prime is still up for grabs! The new prime was independently verified in 5 days by Tony Reix of Bull S.A. in Grenoble, France using 16 Itanium2 1.5 GHz CPUs of a Bull NovaScale 6160 HPC at Bull Grenoble Research Center, running the Glucas program by Guillermo Ballester Valor of Granada, Spain.
http://www.mersenne.org/

Sascha_OW 4. Jan 2006 12:45

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:
 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;
jetzt ist die frage, wie bekomme ich das hin das ich das bis ins unendliche mache und wie mach ich das schneller?=

Achim Kalwa 4. Jan 2006 13:43

Re: Primzahlen bis ins Unendliche
 
Hallo Sascha,

Zitat:

jetzt ist die frage, wie bekomme ich das hin das ich das bis ins unendliche mache und wie mach ich das schneller?=
ein paar Anmerkungen zu Deinem Code:

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 jüngst gefundene Primzahl M43 hat über 9 Millionen Stellen!

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 100.000 US-Dollar Preisgeld einsacken willst, musst Du Deinen Code noch etwas umschreiben :zwinker:

Achim

icqgoofy 25. Jan 2006 20:29

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:
Pmax
Man reihe die Menge aller Primzahlen nacheinander auf:
Code:
2, 3, 5, 7, .............. bis Pmax
Nun multiplizieren wir all diese Zahlen:
Code:
2*3*5*7*.....*Pmax
und erhalten eine Zahl,die wir PM nennen und die durch alle Primzahlen zu teilen ist
(Primfaktorzerlegung)
also:
Code:
2*3*5*7*.....*Pmax = PM
Nun addieren wir zu dieser Zahl PM die Zahl 1, aso:
Code:
PM + 1
und diese neue gewonnene Zahl ist erneut eine Primzahl, da sie durch
keine Zahl zu teilen ist!!!!
Da man Pmax beliebig definieren kann gibt es folglich
KEINE höchste Primzahl.

Gruß icqgoofy

glkgereon 25. Jan 2006 20:32

Re: Primzahlen bis ins Unendliche
 
Dein Beweis hinkt an einer Stelle:

Warum ist PM + 1 eine Primzahl?

Ist für mich nicht ersichtlich...

icqgoofy 25. Jan 2006 20:39

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

glkgereon 25. Jan 2006 20:41

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von icqgoofy
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

ok, ich nehme meinen einwand zurück....das überzeugt :)

icqgoofy 25. Jan 2006 20:44

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

Airblader 25. Jan 2006 20:54

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

glkgereon 25. Jan 2006 21:02

Re: Primzahlen bis ins Unendliche
 
Zitat:

Zitat von Airblader
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

dieses Verfahren ermöglichst dies aber doch...

In Kombination mit der DEC ist es doch super-einfach...oder seh ich da was falsch?

PseudoCode:
Delphi-Quellcode:
While not Abgebrochen do
  begin
  AktPrime:=(AktPrime-1)*AktPrime+1;
  Output(AktPrime);
  end;
Überlegung:
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 19:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz