Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Diophantische Gleichung - Bauer mit Abitur

211 views
Skip to first unread message

Brigitta Jennen

unread,
Nov 25, 2021, 10:54:52 AM11/25/21
to
Hallo,
hier eine - wie ich finde - wunderbar lehrreiche Aufgabe, wie häufig
in eine kleine Geschichte verpackt. Es geht mir NICHT UM DIE LÖSUNG,
die ist mit einigem Nachdenken zu erschließen, und ich gebe sie unten
gerne an, weil sie doch etwas aufwändig ist, sondern um den Nachweis,
dass die gefundene Lösung DIE EINZIG MÖGLICHE ist.

Hier zunächst die Aufgabe: Bauer mit Abitur

Ein Bauer stellt beim Zählen seiner Tiere fest, dass die Anzahlen seiner
Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind. Außerdem
fällt ihm auf, dass die Anzahl der Kühe multipliziert mit der Summe aus
Anzahl der Kühe und Anzahl der Pferde die Anzahl der Hühner um
120 übersteigt.
Wie viele Kühe, Pferde und Hühner befinden sich auf seinem Hof?

Wer selbst nach der Lösung suchen will, sollte hier zunächst nicht weiterlesen.

--- SPOILER ---
.
.
.
.
.
.
.

K = Anzahl der Kühe
P = Anzahl der Pferde
H = Anzahl der Hühner

**********************************************************************
Mein Lösungsvorschlag:
**********************************************************************

(1) Übersichtliche Zusammenfassung der gegebenen (z.T. impliziten)
Bedingungen

a. K, P und H sind ganzzahlig
b. K, P und H sind Primzahlen
c. K, P und H sind unterschiedlich
d. K∙(K + P) = 120 + H (ausmultipliziert: K^2 + PK - (H + 120) = 0)

Es ergibt sich eine nicht-lineare, unterbestimmte diophantische Gleichung.

(2) Betrachtung der rechten Seite: (120 + H) kann gerade oder ungerade
sein.
Fall a:
Annahme: Summe (H + 120) ist gerade, also Annahme, dass H = 2

K∙(K + P) = 120 + H = 122 = 2 * 61

Das Produkt auf der linken Seite kann nur gerade werden, wenn einer der
beiden Faktoren gerade ist.
K darf nicht 2 sein, da wir schon H = 2 vorausgesetzt haben (siehe c. oben)
K kann aber auch nicht 61 sein, da in diesem Fall (K + P) ungleich 2 ist.

Folgerung_1:
H muss ungleich 2 sein, also rechte Seite ungerade.

Fall b:
Keine Annahme mehr, sondern Gewissheit: die Summe (H + 120) ist ungerade.

D.h. das Produkt der linken Seite K∙(K + P) ist ebenfalls ungerade, was
nur geht, wenn beide Faktoren ungerade sind. Also ist K ungerade!
Die Summe (K + P) wird nur ungerade, wenn ein Summand gerade, der andere ungerade ist. Da K ungerade sein muss, muss P gerade und damit
2 sein.

Folgerung_2:
P = 2

(3) Betrachten der diophantischen Gleichung mit eingesetzten Zahlen:

K^2 + 2K - 120 = H

Wenn K gerade wäre, stünde links eine gerade, rechts aber eine ungerade
Zahl. Dass H ungerade sein muss, wurde unter Folgerung_1 bewiesen.
K muss also ebenfalls ungeradzahlig sein.

Faktorisieren durch Bestimmen der Nullstellen der linken Seite ergibt:
K_1,2 = -1 +- Sqrt(1 + 120) =-1 +- 11
K^2 + 2K - 120 = (K - 10) ∙ (K + 12) = H

H muss eine Primzahl sein.
Eine Primzahl P kann aber nur in einer Form als Produkt geschrieben bzw.
zerlegt werden: P = 1 * P (Definition einer Primzahl).

Also ist entweder (K - 10) = 1 oder (K + 12) = 1
(K + 12) = 1 scheidet aus, weil K = -11 keine Primzahl ist!
Somit muss (K - 10) = 1 sein und damit

Folgerung_3 :
K = 11

(4) Einsetzen der erhaltenen Werte
P = 2
K = 11

in die Ausgangsgleichung

K∙(K + P) = 120 + H = 11 (11 + 2) = 120 + H bzw.
(K - 10)∙(K + 12) = H

ergibt
H = 23

(5) Und somit als Lösungstripel (K, P, H) = (11, 2, 23)

Anzahl der Kühe K = 11
Anzahl der Pferde P = 2
Anzahl der Hühner H = 23

Soweit die Lösung.
Nun jedoch zurück zur eigentlichen Frage:
Wie kann man nachweisen, dass dies das einzige Lösungstripel ist?

Mit den "üblichen Verdächtigen"
- Direkter Beweis
- Indirekter Beweis
a. Beweis durch Kontraposition
b. Beweis durch Widerspruch
- Konstruktiver Beweis
- Ikonischer Beweis
- Vollständige Induktion (funktioniert hier sowiso nicht)
- Beweis durch Fallunterscheidung

bin ich nicht weitergekommen.
Wie kann man die Singularität der Lösung sonst beweisen?
Spezialverfahren?

Grüße Brigitta

Andreas Leitgeb

unread,
Nov 25, 2021, 4:02:23 PM11/25/21
to
Brigitta Jennen <ladya...@gmail.com> wrote:
> Hallo,
> hier eine - wie ich finde - wunderbar lehrreiche Aufgabe, wie häufig
> in eine kleine Geschichte verpackt. Es geht mir NICHT UM DIE LÖSUNG,
> die ist mit einigem Nachdenken zu erschließen, und ich gebe sie unten
> gerne an, weil sie doch etwas aufwändig ist, sondern um den Nachweis,
> dass die gefundene Lösung DIE EINZIG MÖGLICHE ist.

Habe mir die Lösung durchgelesen, und dabei den Eindruck gehabt, als
könnte es ohnehin gar keine andere Lösung geben. Hast ja eigentlich
alle alternativ-Kandidaten sauber ausgeschlossen.

Carlo XYZ

unread,
Nov 25, 2021, 6:33:06 PM11/25/21
to
Brigitta Jennen schrieb am 25.11.21 um 16:54:

> K = Anzahl der Kühe
> P = Anzahl der Pferde
> H = Anzahl der Hühner
>
> **********************************************************************
> Mein Lösungsvorschlag:
> **********************************************************************
>
> (1) Übersichtliche Zusammenfassung der gegebenen (z.T. impliziten)
> Bedingungen
>
> a. K, P und H sind ganzzahlig
> b. K, P und H sind Primzahlen

b. macht Voraussetzung a. unnötig.

> c. K, P und H sind unterschiedlich

Kann man aufführen, aber mal sehen, ob c. überhaupt nötig ist.

> d. K∙(K + P) = 120 + H (ausmultipliziert: K^2 + PK - (H + 120) = 0)

OK. Das Ausmultiplizierte brauchen wir erstmal nicht.
[Warum P/K umdrehen und nicht KP schreiben?]

> (2) Betrachtung der rechten Seite: (120 + H) kann gerade oder ungerade
> sein.
> Fall a:

Fall A. Sonst verwechselt man es u.U. mit a. von oben.

> Annahme: Summe (H + 120) ist gerade, also Annahme, dass H = 2

Hier benutzen wir b. und die Tatsache,
dass gerade Zahl + ungerade Zahl = ungerade Zahl.
[Warum 120+H und H+120 umdrehen?]

> K∙(K + P) = 120 + H = 122 = 2 * 61
>
> Das Produkt auf der linken Seite kann nur gerade werden, wenn einer der
> beiden Faktoren gerade ist.
> K darf nicht 2 sein, da wir schon H = 2 vorausgesetzt haben (siehe c. oben)

Hier brauchen wir c. nicht in Gänze.
Wäre K=2, hätten wir 2(2+P) = 120+H,
also H gerade, also H=2 (wegen b.) und P=59,
in der Tat eine weitere Lösung der Gleichung.
Wir brauchen hier c., aber nur den Teil H\notequal K.

> K kann aber auch nicht 61 sein, da in diesem Fall (K + P) ungleich 2 ist.

OK.

> Folgerung_1:
> H muss ungleich 2 sein, also rechte Seite ungerade.

Wegen b. ist H ungerade, also auch die rechte Seite (120+H) von d.

> Fall b:

Fall B.

> Keine Annahme mehr, sondern Gewissheit: die Summe (H + 120) ist ungerade.

Ich würde es hier vorziehen, nicht von zwei Fällen zu
sprechen, sondern so zu formulieren: Nehmen wir an,
dass 120+H gerade ist. Dann... etc. wie eben. Also ist
die Annahme falsch und H, und damit auch 120+H, sind ungerade Zahlen.

> D.h. das Produkt der linken Seite K∙(K + P) ist ebenfalls ungerade, was
> nur geht, wenn beide Faktoren ungerade sind. Also ist K ungerade!

Also sind sowohl K als auch (K+P) ungerade.
Da K ungerade ist, ist (K+P) gerade, und folglich ist auch P gerade.
[Direkt zu Folgerung 2]

> Die Summe (K + P) wird nur ungerade, wenn ein Summand gerade, der andere ungerade ist. Da K ungerade sein muss, muss P gerade und damit
> 2 sein.
>
> Folgerung_2:
> P = 2

Wegen b. und weil P gerade ist.

>
> (3) Betrachten der diophantischen Gleichung mit eingesetzten Zahlen:
>
> K^2 + 2K - 120 = H

Erst hier multiplizieren wir ein bisschen aus.

> Wenn K gerade wäre, stünde links eine gerade, rechts aber eine ungerade
> Zahl. Dass H ungerade sein muss, wurde unter Folgerung_1 bewiesen.
> K muss also ebenfalls ungeradzahlig sein.

Das wissen wir schon und es wurde oben explizit gesagt.
Die 3 Zeilen können weggelassen werden.

> Faktorisieren durch Bestimmen der Nullstellen der linken Seite ergibt:
> K_1,2 = -1 +- Sqrt(1 + 120) =-1 +- 11
> K^2 + 2K - 120 = (K - 10) ∙ (K + 12) = H

Ich ziehe vor, dies zu verkürzen zu

Faktorisieren (z.B. durch Bestimmen der Nullstellen
der linken Seite) ergibt (K - 10) ∙ (K + 12) = H

> H muss eine Primzahl sein.
> Eine Primzahl P kann aber nur in einer Form als Produkt geschrieben bzw.
> zerlegt werden: P = 1 * P (Definition einer Primzahl).

Kann auch verkürzt werden zu: Wegen b. ist H eine Primzahl,
und wegen der Eindeutigkeit der Primzahlzerlegung gilt ..
[Hat den Nebenvorteil, dass P nicht wieder anders verwendet wird.]

> Also ist entweder (K - 10) = 1 oder (K + 12) = 1
> (K + 12) = 1 scheidet aus, weil K = -11 keine Primzahl ist!
> Somit muss (K - 10) = 1 sein und damit
>
> Folgerung_3 :
> K = 11

OK. Der Rest ist ein bisschen lang. Es genügt zu schreiben:
Folgerungen 2 und 3 ergeben P=2 und K=11, und mit d. zusammen
errechnet sich H zu 23.

> (4) Einsetzen der erhaltenen Werte
> P = 2
> K = 11
>
> in die Ausgangsgleichung
>
> K∙(K + P) = 120 + H = 11 (11 + 2) = 120 + H bzw.
> (K - 10)∙(K + 12) = H
>
> ergibt
> H = 23
>
> (5) Und somit als Lösungstripel (K, P, H) = (11, 2, 23)
>
> Anzahl der Kühe K = 11
> Anzahl der Pferde P = 2
> Anzahl der Hühner H = 23
>
> Soweit die Lösung.
> Nun jedoch zurück zur eigentlichen Frage:
> Wie kann man nachweisen, dass dies das einzige Lösungstripel ist?

Die Herleitung zeigt es, wie auch Andreas Leitgeb
bereits anmerkte.

>
> Mit den "üblichen Verdächtigen"
> - Direkter Beweis
> - Indirekter Beweis
> a. Beweis durch Kontraposition
> b. Beweis durch Widerspruch
> - Konstruktiver Beweis
> - Ikonischer Beweis

Lustig, da musste ich erstmal googeln.
Der Begriff war mir komplett unbekannt.

> - Vollständige Induktion (funktioniert hier sowiso nicht)
> - Beweis durch Fallunterscheidung
>
> bin ich nicht weitergekommen.
> Wie kann man die Singularität der Lösung sonst beweisen?

Das nennt man i.d.R. die Eindeutigkeit der Lösung.
"Singularität" bedeutet oft etwas anderes.

> Spezialverfahren?

Das Jennen-Verfahren :-)

Carlo XYZ

unread,
Nov 25, 2021, 6:57:31 PM11/25/21
to
Carlo XYZ schrieb am 26.11.21 um 00:33:

> Also sind sowohl K als auch (K+P) ungerade.
> Da K ungerade ist, ist (K+P) gerade, und folglich ist auch P gerade.

Garbled, sorry.

"Also sind sowohl K als auch (K+P) ungerade. Folglich ist P gerade."

> [Direkt zu Folgerung 2]

usw.

Rainer Rosenthal

unread,
Nov 25, 2021, 8:05:52 PM11/25/21
to
Am 25.11.2021 um 16:54 schrieb Brigitta Jennen:
> Hallo,
> hier eine - wie ich finde - wunderbar lehrreiche Aufgabe, wie häufig
> in eine kleine Geschichte verpackt. Es geht mir NICHT UM DIE LÖSUNG,
> die ist mit einigem Nachdenken zu erschließen, und ich gebe sie unten
> gerne an, weil sie doch etwas aufwändig ist, sondern um den Nachweis,
> dass die gefundene Lösung DIE EINZIG MÖGLICHE ist.
>
> Hier zunächst die Aufgabe: Bauer mit Abitur
>
> Ein Bauer stellt beim Zählen seiner Tiere fest, dass die Anzahlen seiner
> Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind. Außerdem
> fällt ihm auf, dass die Anzahl der Kühe multipliziert mit der Summe aus
> Anzahl der Kühe und Anzahl der Pferde die Anzahl der Hühner um
> 120 übersteigt.
> Wie viele Kühe, Pferde und Hühner befinden sich auf seinem Hof?
>
> Wer selbst nach der Lösung suchen will, sollte hier zunächst nicht weiterlesen.
>
Ich habe Deinen Ratschlag befolgt und zeige meine Lösung, die geradewegs
auf die einzig mögliche Lösung führt.

Mit K, P, H als Anzahlen der Kühe, Pferde und Hühner bekommen wir die
Gleichung

K*(K+P) - H = 120 (1)

Die drei Zahlen können nicht alle ungerade sein, weil sonst links etwas
Ungerades steht, und das kann nicht gleich der geraden Zahl 120 sein.
Die einzige gerade Primzahl ist 2, und alle Anzahlen sind verschieden,
d.h. genau eine der drei Anzahlen ist 2.

Kann H = 2 sein?
Annahme H = 2. Dann ist K*(K+P) = 122 = 2*61 ein Produkt aus 2
Primzahlen, und da K = 2 ausgeschlossen ist, weil K ungleich H sein
muss, müsste K+P = 2 sein, was offenbar auch unmöglich ist, weil
Primzahlen größer als 1 sind.
Wir wissen nun, dass H eine ungerade Primzahl ist, und dass entweder K
oder P gleich 2 sind.

Schreiben wir (1) als

K*(K+P) = 120 + H (2)

dann steht rechts eine ungerade Zahl, d.h. es kann nicht K = 2 sein.
Daraus folgt, dass die verbliebene Zahl P gleich 2 sein muss:

P = 2 (3)

Aus Gleichung (2) folgt, dass K*(K+2) - 120 = H ist.
Wegen K*(K+2) = (K+1)^2 - 1 ist also (K+1)^2 - 121 = H, d.h.

(K+1)^2 - 11^2 = H (4)

Wegen a^2 - b^2 = (a+b)*(a-b) haben wir

(K+1+11)*(K+1-11) = H (5)

Da H Primzahl ist, muss einer der Faktoren 1 sein, und das kann nur der
zweite Faktor sein: K+1-11 = 1, also

K = 11 (6)

Aus Gleichung (4) bekommen wir dann H = 12^2 - 11^2 = 144 - 121, d.h.

H = 23 (7)

Mit den Gleichungen (3), (6) und (7) sind alle gesuchten Anzahlen
eindeutig bestimmt worden.

So, und jetzt schaue ich mir Deine Lösung an. Oder nee, es ist zu spät.
Da mache ich, wenn ich ausgeschlafen habe.

Herzlich grüßend, das war eine hübsche Aufgabe!
Rainer




Rainer Rosenthal

unread,
Nov 26, 2021, 2:56:10 AM11/26/21
to
Am 25.11.2021 um 16:54 schrieb Brigitta Jennen:
>
> Hier zunächst die Aufgabe: Bauer mit Abitur
>
> Ein Bauer stellt beim Zählen seiner Tiere fest, dass die Anzahlen seiner
> Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind. Außerdem
> fällt ihm auf, dass die Anzahl der Kühe multipliziert mit der Summe aus
> Anzahl der Kühe und Anzahl der Pferde die Anzahl der Hühner um
> 120 übersteigt.

Bei einem Landwirte-Treffen hat er seine Beobachtung mitgeteilt und
gefragt, bei wem das auch so sei.

Da hat ein Großbauer geschmunzelt und gesagt: "Schau mal genau hin! Die
Differenz 120 ist bestimmt um 1 kleiner als das Quadrat der Anzahl der
Kühe."
Verblüfft musste der Bauer zugeben, dass das tatsächlich der Fall ist.

Dann fügte der Großbauer geheimnisvoll hinzu, dass auch seinem Hof gilt,
dass die Summe aus Hühneranzahl und Quadrat der Anzahl der Kühe um 1
größer ist als die Anzahl der Kühe multipliziert mit der Summe aus
Anzahl der Kühe und Anzahl der Pferde, und dass alle diese Anzahlen
paarweise verschiedene Primzahlen sind.

Ein Pferdezüchter hörte das Gespräch und schüttelte nur mitleidig den
Kopf: "Mit Pferden habt ihr's wohl nicht so, und was die Kühe und Hühner
betrifft, solltet ihr mal zur Großbäuerin Sophie Germain gehen. Die
achtet immer darauf, dass sie gerade so viele Kühe hat (Anzahl K) , dass
sie die zur Großbauern-Formel K*(K+P) = H + K^2 - 1 passende Anzahl H an
Hühnern auftreiben kann. Mit Pferden (Anzahl P) hat sie's auch nicht so.
Und selbstverständlich sind auch bei ihr alle Anzahlen verschieden und
prim."

Wen diese Bauernschlauheit interessiert, der kann versuchen, selbst aus
dem wirren Gestammel schlau zu werden, oder schaut weiter unten nach



spoiler





spoiler






spoiler





Aus meiner gestrigen Rechnung ist mir klar geworden, dass die Formel zum
Schluss einen Schlüssel zum Verständnis der Aufgabenstruktur bietet.
Sie lautet (K+1+K)(K+1-K) = H, also H = 2K+1.
Wenn K und H Primzahlen sind, bedeutet dies, dass K eine Sophie Germain
Primzahl ist.
"Eine Primzahl p nennt man Sophie-Germain-Primzahl oder auch Germainsche
Primzahl, wenn auch 2p + 1 eine Primzahl ist."
(siehe https://de.wikipedia.org/wiki/Sophie-Germain-Primzahl)

Ich habe gerade einen Telefonanruf von einem Kleinbauern bekommen.
Er sagte:
"Ich habe beim Zählen meiner Tiere festgestellt, dass die Anzahlen
meiner Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind.
Außerdem ist mir aufgefallen, dass die Anzahl der Kühe multipliziert mit
der Summe aus Anzahl der Kühe und Anzahl der Pferde die Anzahl der
Hühner um 8 übersteigt. - Raten Sie mal, wie viele Kühe, Pferde und
Hühner ich habe!"

Er war verblüfft, dass ich ihm wie aus der Pistole geschossen sagen
konnte: "Sie haben 3 Kühe, 2 Pferde und 7 Hühner!"

Brigitta Jennen

unread,
Nov 26, 2021, 7:10:40 AM11/26/21
to
Carlo XYZ schrieb am Freitag, 26. November 2021 um 00:33:06 UTC+1:
...
Herzlichen Dank für die ausführliche Kommentierung.
Ich habe Deine Vorschläge und Anmerkungen umgesetzt und es ist eine
wirklich sehr klare und elegante Lösung entstanden.
Wenn man angefangen hat zu lesen ist der Weg zur Lösung fast zwingend.
(Ich bin von der Aufgabe und der dank der Hilfe entstandenen Lösung wirklich
begeistert. Auch sie stammt übrigens aus einem Fundus uralter Übungsaufgaben,
diesmal von der ETH Zürich).

> > Nun jedoch zurück zur eigentlichen Frage:
> > Wie kann man nachweisen, dass dies das einzige Lösungstripel ist?
> Die Herleitung zeigt es, wie auch Andreas Leitgeb
> bereits anmerkte.

Schon nach Andreas' Hinweis - vielen Dank dafür - schwante mir was,
wenn auch noch dunkel.

> ...
> Das nennt man i.d.R. die Eindeutigkeit der Lösung.
>

OK. Hab ich realisiert, aber noch nicht ganz verstanden.
Angenommen, ich stünde im Hörsaal vor 40 Studies und müsste
erklären, warum jetzt damit bewiesen ist, dass die gefundene
Lösung die einzige ist - ich käme ins Schleudern.

Danke nochmals an alle, die geantwortet haben.
Grüße B.

Brigitta Jennen

unread,
Nov 26, 2021, 7:18:51 AM11/26/21
to
...
> Herzlich grüßend, das war eine hübsche Aufgabe!

Hallo Rainer,
Du bist ein klein wenig anders eingestiegen, aber auch sehr geradlinig
auf das Ziel zugesteuert. Schön übersichtlich, Dein Lösungsweg.
Vielen Dank dafür.
Grüße B.

> Rainer

Brigitta Jennen

unread,
Nov 26, 2021, 9:01:06 AM11/26/21
to
Rainer Rosenthal schrieb am Freitag, 26. November 2021 um 08:56:10 UTC+1:

> Wenn K und H Primzahlen sind, bedeutet dies, dass K eine Sophie Germain
> Primzahl ist.
> "Eine Primzahl p nennt man Sophie-Germain-Primzahl oder auch Germainsche
> Primzahl, wenn auch 2p + 1 eine Primzahl ist."
> (siehe https://de.wikipedia.org/wiki/Sophie-Germain-Primzahl)

Hallo Rainer,
kleiner Nachtrag:
Dieser Hinweis auf die Sophie-Germain-Primzahlen (von denen ich noch
nie gehört hatte) ist toll. Dass das hier eine Rolle spielt, ist für mich total
verblüffend.
Ganz herzlichen Dank dafür.

Rainer Rosenthal

unread,
Nov 26, 2021, 12:04:33 PM11/26/21
to
Hallo Brigitta,

gern geschehen, hat Spaß gemacht, wie sich eins aus dem anderen
folgerichtig ergab.

Selbst 41 Studies dürften ein Problem haben, einen Punkt in der
Herleitung der Lösung zu finden, bei dem eine Abzweigung zu einer
anderen Lösung denkbar wäre. Vielleicht habe ich einfach Glück gehabt,
recht schnell auf den Gedanken zu verfallen, die 2 zu lokalisieren bei
der Anzahl P der Pferde.
Der Beweis besteht - wie ich rückwirkend feststelle - aus zwei Teilen.
Zuerst wird erkannt, dass die 2 in der Menge {K, P, H} sein muss.
Anschließend wird mit den verbliebenen Unbekannten K und H so lange
gespielt, bis sie sich zu erkennen geben.

Lieben Gruß,
Rainer


Brigitta Jennen

unread,
Nov 27, 2021, 6:30:07 AM11/27/21
to
Rainer Rosenthal schrieb am Freitag, 26. November 2021 um 08:56:10 UTC+1:
...
Hallo Rainer,
muss mich aus gegebenem Anlass nochmals melden.

> Ich habe gerade einen Telefonanruf von einem Kleinbauern bekommen.
> Er sagte:
> "Ich habe beim Zählen meiner Tiere festgestellt, dass die Anzahlen
> meiner Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind.
> Außerdem ist mir aufgefallen, dass die Anzahl der Kühe multipliziert mit
> der Summe aus Anzahl der Kühe und Anzahl der Pferde die Anzahl der
> Hühner um 8 übersteigt. - Raten Sie mal, wie viele Kühe, Pferde und
> Hühner ich habe!"
>
> Er war verblüfft, dass ich ihm wie aus der Pistole geschossen sagen
> konnte: "Sie haben 3 Kühe, 2 Pferde und 7 Hühner!"

Der gleiche Bauer hat mich eben auch angerufen und gesagt, er habe Dir
versehentlich unkorrekte Angaben gemacht.
Die Zahl der Hühner werde nicht um 8 überschritten, sondern um 51,
so dass gelte: K * (K + H) = 51 + H.

Er war verblüfft, dass ich ihm nicht sofort antworten konnte :-))

Brigitta Jennen

unread,
Nov 27, 2021, 6:32:14 AM11/27/21
to
Sorry, muss natürlich heißen K * (K + P) = 51 + H

Rainer Rosenthal

unread,
Nov 27, 2021, 9:20:15 AM11/27/21
to
> so dass gelte: K * (K + P) = 51 + H.
>
> Er war verblüfft, dass ich ihm nicht sofort antworten konnte :-))
>
Hallo Brigitta,

ich freue mich über die Fortsetzung, aber genau wie der Bauer bin ich
auch erst einmal verblüfft, weil der "Überschuss" U in der Originalaufgabe

(K + P) = U + H, mit paarweise verschiedenen Primzahlen K, P, H

die gerade Zahl U = 120 ist. Auch in der "versehentlich unkorrekten"
telefonisch genannten Aufgabe war U = 8 eine gerade Zahl. Aus der
Geradzahligkeit und der lustig versteckten Beziehung U = K^2 - 1 konnte
ich die drei Zahlen K, P und H ermitteln und 41 Studies vorführen.
(Ob ihr Professor folgen konnte, weiß ich nicht *har* *har*.)

Kannst Du mir bitte einen Tipp geben, was ich dazu beitragen kann, dass
wir drei, der Bauer, Du und ich aus der Verblüffung heraus kommen?

Lieben Gruß,
Rainer

Brigitta Jennen

unread,
Nov 27, 2021, 11:26:21 AM11/27/21
to
Rainer Rosenthal schrieb am Samstag, 27. November 2021 um 15:20:15 UTC+1:
...

Der Bauer war verblüfft, weil er die Originalaufgabe kannte.
Es war ihm (nach etwas Nachhilfe) klar, dass es bei dieser nur eine einzige,
eindeutige Lösung geben konnte.

Um so überraschter war er, als ich ihm bei seiner neuen Aufgabe
gleich mehrere Lösungstripel angeboten habe:

K * (K + P) = 51 + H

lösen u.a. die Tripel

(5, 11, 29)
(7, 13, 89)
(11, 3, 103) ...

Und als ich ihm dann noch sagte, dass es - anders als bei der Ursprungsaufgabe -
nunmehr unendlich viele Lösungen gäbe, verstummte er vollends.
(Er bat mich lediglich noch um den Beweis für diese kühne Behauptung).

> (Ob ihr Professor folgen konnte, weiß ich nicht *har* *har*.)
(Die Studies haben beim akademischen Rat der Universität inzwischen eine Petition
mit dem Ziel der Ablösung des Lehrkörpers eingereicht).

LG Brigitta

Rainer Rosenthal

unread,
Nov 28, 2021, 7:02:33 PM11/28/21
to
Am 27.11.2021 um 17:26 schrieb Brigitta Jennen:
>
> Um so überraschter war er, als ich ihm bei seiner neuen Aufgabe
> gleich mehrere Lösungstripel angeboten habe:
>
> K * (K + P) = 51 + H
>
> lösen u.a. die Tripel
>
> (5, 11, 29)
> (7, 13, 89)
> (11, 3, 103) ...
>
> Und als ich ihm dann noch sagte, dass es - anders als bei der Ursprungsaufgabe -
> nunmehr unendlich viele Lösungen gäbe, verstummte er vollends.
> (Er bat mich lediglich noch um den Beweis für diese kühne Behauptung).
>
Ob es unendlich viele Lösungen gibt, könnten sicher nur absolute
Zahlentheorie-Experten beurteilen. Sobald es um die Existenz von
Primzahlen mit bestimmten Eigenschaften geht, wird es super-knifflig.

Gesucht sind Tripeln (K,P,H) aus paarweise verschiedenen Primzahlen, die
die Gleichung

K * (K + P) = 51 + H (*)

erfüllen sollen.

Vergleichen wir diese Aufgabe mal mit einer etwas anderen:
Jede gerade Zahl H > 4 sollen mit ungeraden Primzahlen K und P zu einem
Tripel (K,P,H) ergänzt werden, so dass die Gleichung

K + P = H (**)

erfüllt ist. Obwohl man das bis zu schwindelerregenden Größen von H hat
rechnen können, steht der Beweis noch aus. Und das fast 280 Jahre nach
der ersten offiziell bekannten Formulierung dieser Aufgabe.

Natürlich haben die beiden Aufgaben nicht direkt etrwas miteinander zu
tun, sondern meine Schreibweise suggeriert nur eine gewisse
Verwandtschaft, aber die Aufgabe mit der 51 sieht nicht wesentlich
einfacher aus, als die unter dem Namen (starke) Goldbach-Vermutung
bekannte Uralt-Aufgabe.

Weil ich mir einen Eindruck von der drohenden Unendlichkeit der Tripel
in der 51-Aufgabe verschaffen wollte, habe ich den PC angeworfen und
liefere hier die nach Summe K+P+H sortierten ersten 30 Tripel:

( 7, 3, 19) // Summe 29
( 2, 29, 11) // Summe 42
( 5, 11, 29) // Summe 45 <== gepostet_von_BJ
( 5, 17, 59) // Summe 81
( 7, 13, 89) // Summe 109 <== gepostet_von_BJ
( 2, 53, 59) // Summe 114
( 5, 23, 89) // Summe 117
(11, 3,103) // Summe 117 <== gepostet_von_BJ
( 2, 59, 71) // Summe 132
( 7, 19,131) // Summe 157
(13, 3,157) // Summe 173
( 2, 89,131) // Summe 222
( 5, 41,179) // Summe 225
( 2,107,167) // Summe 276
(11, 17,257) // Summe 285
( 2,113,179) // Summe 294
( 5, 53,239) // Summe 297
( 7, 37,257) // Summe 301
( 5, 59,269) // Summe 333
( 2,137,227) // Summe 366
(19, 3,367) // Summe 389
( 2,149,251) // Summe 402
(11, 29,389) // Summe 429
(19, 7,443) // Summe 469
( 5, 83,389) // Summe 477
( 2,179,311) // Summe 492
( 5, 89,419) // Summe 513
( 7, 67,467) // Summe 541
( 2,197,347) // Summe 546
(13, 31,521) // Summe 565

Anmerkung: die 11 und die 29 zeigen sich offenbar gerne:
( 2, 29, 11)
( 5, 11, 29)
(11, 29,389)

Ich hätte ja gerne noch (29,11,...) nachgereicht, aber das geht leider
nicht :-(

Herzlich grüßend,
Rainer Rosenthal
r.ros...@web.de

Rainer Rosenthal

unread,
Nov 28, 2021, 7:13:14 PM11/28/21
to
Am 29.11.2021 um 01:02 schrieb Rainer Rosenthal:
>
> Anmerkung: die 11 und die 29 zeigen sich offenbar gerne:
> ( 2, 29, 11)
> ( 5, 11, 29)
> (11, 29,389)
>
> Ich hätte ja gerne noch (29,11,...) nachgereicht, aber das geht leider
> nicht :-(
>
Ist wohl ein bisschen spät für sowas.
Geht nämlich sehr wohl:

(29,11,1109) ist auch ein Lösungstripel, weil 1109 "zufällig" prim ist,
und weil 29*(29+11) = 1160 = 51 + 1109 ist.

So, hier in voller Schönheit alle 11-29-Tripel:

( 2, 29, 11)
( 5, 11, 29)
(11, 29, 389)
(29, 11, 1109)

Gruß,
RR

Brigitta Jennen

unread,
Nov 29, 2021, 5:54:42 AM11/29/21
to
Rainer Rosenthal schrieb am Montag, 29. November 2021 um 01:13:14 UTC+1:
> Am 29.11.2021 um 01:02 schrieb Rainer Rosenthal:

... tolle Sachen ...

Hallo Rainer,
vielen Dank für Deine Mühe und die Einblicke in mathematische Nebentäler, die Du
eindrucksvoll geliefert hast.
Ich habe ebenfalls mal den Computer rechnen lassen und bin im Prinzip auf die
gleiche Weise zu den Lösungs-Tripeln der 51-er Aufgabe gekommen wie Du.
Da ich faul bin und Python und Java schon langsam wieder vergesse, hab ich das
unter Excel-VBA (ich weiß, Schande ...) gemacht:

Primzahlen zwischen 1 und 1000 über Sieb des Eratosthenes in ein Array.
Dann per Programm durchprobieren, welche Tripel passen.
Pssende Lösungstripel in Ergebnis-Array und ausgeben.

Das ist umständlich und zeitraubend. Für kleine Zahlen - OK.
Da ich inzwischen meinen Neffen, der als Mathematiker bei der Münchener Rück
arbeitet, für die Aufgabenstellung interessieren konnte, haben wir beschlossen,
auf seinem deutlich leistungsfähigeren Supercomputer das mal für die erste Million
Primzahlen durchzuspielen und ein Stück weit Richtung Unendlickeit zu blicken.
Meine Idee ist, da auch mit statistischen Mitteln evtl. Einblicke zu gewinnen.

Vielleicht ergeben sich ja überraschende Muster, so wie Du schon bemerkt hast,
dass die 11 und die 29 sich häufiger mit anderen tummeln.
Da mein Neffe ebenfalls faul ist (liegt bei uns wohl un der Familie) hat er mich
aber dummerweise gebeten, ich soll dafür das Programm schreiben :-)), egal welche
Programmiersprache.

Daher meine Frage:
Wie und in welcher Sprache hast Du das programmiert?
Welchen Algorithmus zur Primzahlerkennung hast Du verwendet?

Bevor ich da viel Zeit investiere, hab ich mir gedacht, ich frag einfach
mal nach. Vielleicht hast Du oder sonst jemand, der mitliest, einen Tipp,
wie man das am besten angeht, wenn man bis zu sehr großen Zahlen möglichst
ökonomisch rechnen will. Ich hab damit keine Erfahrung.

Danke und Herzliche Grüße
B.

> Gruß,
> RR

Rainer Rosenthal

unread,
Nov 29, 2021, 1:12:17 PM11/29/21
to
Am 29.11.2021 um 11:54 schrieb Brigitta Jennen:
> Wie und in welcher Sprache hast Du das programmiert?
> Welchen Algorithmus zur Primzahlerkennung hast Du verwendet?
>
Ich habe Maple verwendet, und da ist die Primzahlerkennung eingebaut:

Eine gegeben Zahl z liefert beim Aufruf von isprime(z) den Wert true
oder false.
Mit nextprime(z) bekommt man die nächste Primzahl.
Mit ithprime(k) bekommt man die k-te Primzahl, ithprime(1) = 2.
Mit der Funktion SigAbs1(K,P,H,U) = K*(K+P) - (H + U) kann ich erkennen,
ob ich einen Treffer habe (Wert 0), oder ob ich bei vorgegebenem H die
Werte von K oder P noch vergrößern darf (Wert < 0).
Ich laufe mit H in einer äußeren Schleife durch alle Primzahlen zwischen
1 und H_MAX, dann in einer inneren Schleife mit K über alle Primzahlen
zwischen 1 und K_MAX.

Ich sehe im Programm:
> U := 51;
> # SigAbs1(K_MAX,2,H_MAX,U) ~ 0
> H_MAX := 44893;
> K_MAX := 211;

Das heißt, ich habe die Obergrenzen von H und K so dimensioniert, dass
SigAbs1 für die minimale Pferdeanzahl P = 2 ungefähr 0 ist.

Ich sehe gerade beim Blick in die Programm-Quelle, dass ich für P eine
feste Obergrenze 80 verwendet hatte. Da habe ich mir vielleicht was
dabei gedacht, aber ich kann das jetzt nicht begründen(*).

Ist aber gut, dass Du gefragt hast, denn da kann ich ja mal dran drehen.
Die schöne Sortierung nach Summe K + P + H liefert mir Maple mit der
sort-Funktion.
Aber jetzt, wo ich das Programm erläutere, fällt mir auf, dass es ja
eigentlich viel eleganter wäre, gleich mit den aufsteigenden Summen zu
beginnen! Werde ich nachher vielleicht noch ausprobieren.

Übrigens ist "Schande" fehl am Platz bei Excel VBA. Es sollte mich aber
sehr wundern, wenn VBA keine Primzahl-Test hat. Oh, eine kurze
Netzanfrage scheint zu zeigen, dass man da von Hand arbeiten muss.

Es ist jedenfalls eine schöne Spielwiese, und das zeigt sich gut an der
"nachgekleckerten" vierten Kombination (29, 11, 1109) für 11 und 29.
Für mich sieht es wie zufällig aus, dass die für K = 29 und P = 11
bei Überschuss U = 51 benötigte Zahl H = K*(K+P) - U = 1109 tatsächlich
prim ist.

(*) So ganz habe ich mein Programm offenbar selbst nicht verstanden,
denn es schafft ganz offenbar, die P-Hürde 80 zu überspringen. Au weia,
back to the drawing board.

Liebe Grüße,
Rainer

Rainer Rosenthal

unread,
Nov 29, 2021, 5:11:51 PM11/29/21
to
Am 29.11.2021 um 19:12 schrieb Rainer Rosenthal:
> Am 29.11.2021 um 11:54 schrieb Brigitta Jennen:
>> Wie und in welcher Sprache hast Du das programmiert?
>>
> Ich habe Maple verwendet, und da ist die Primzahlerkennung eingebaut:
>
> Ich laufe mit H in einer äußeren Schleife durch alle Primzahlen zwischen
> 1 und H_MAX, dann in einer inneren Schleife mit K über alle Primzahlen
> zwischen 1 und K_MAX.
>
> (*) So ganz habe ich mein Programm offenbar selbst nicht verstanden,
> denn es schafft ganz offenbar, die P-Hürde 80 zu überspringen. Au weia,
> back to the drawing board.
>
Ich kann nur staunen, was ich da für einen Murks zusammengeschrieben
hatte. Diese P-Hürde ist vollkommener Quatsch, es genügt die
systematische Durchforstung aller H und K bis zu einer gewissen
Obergrenze. Ob es ein passendes P dazu gibt, kann man ja mit einem Test
sofort erkennen: P = (H+U)/K - K ausrechnen und (K,P,H) als
Lösungs-Tripel notieren, wenn P eine von K und H verschiedene Primzahl ist.
Ich hatte peinlicherweise das P in einer Schleife gesucht *schäm*.

Gut, dass ich das Programm noch einmal überarbeitet habe.
Es findet jetzt
für H_MAX = 44893 und K_MAX = 211 mehr Lösungen als vorher.
Ich hatte 1496, und jetzt sind es 1554 geworden.

Die dusslige Behandlung der P-Suche war daran schuld.
Ich habe natürlich neugierig geschaut, was für Tripel ich übersehen hatte.
Die ersten 587 Tripel (nach Summe geordnet) waren identisch, aber nach
dem 587-ten Tripel (53, 251, 16061) hatte ich vorher (5, 2741, 13679),
und nun hat sich noch (83, 113, 16217) eingefunden, was summenmäßig
dazwischen liegt.

Wie ich sicher sein kann, alle Tripel (K,P,H) bis zu einer gewissen
maximalen Summe erwischt zu haben, blicke ich gerade noch nicht.

Gruß,
Rainer

Rainer Rosenthal

unread,
Nov 30, 2021, 9:03:23 AM11/30/21
to
Am 29.11.2021 um 11:54 schrieb Brigitta Jennen:
> Wie und in welcher Sprache hast Du das programmiert?
> Welchen Algorithmus zur Primzahlerkennung hast Du verwendet?
>
Hallo Brigitta,

zum Thema Primzahlen hatte ich Dir schon was geschrieben, und auch, dass
ich in Maple, wie in eigentlich jeder höheren Sprache, fertige
Funktionen dafür zur Verfügung gestellt bekomme.

Nach dem ersten schlampigen Programm-Entwurf habe ich nochmal nachgedacht.
Der Ansatz, eine Schleife über H laufen zu lassen, ist völlig OK.
Denn die Formel K*(K+P) = H + U sagt mir, dass das zu gegebenem H
gehörende K maximal ist, wenn P minimal ist. P ist mindestens 2.
Somit gibt die Auflösung von x*(x+2) = H + U einen Wert x, den K nicht
übertreffen kann. Zu gegebenem H_MAX findest Du darüber K_MAX.
Was dann folgt, ist eine verschachtelte Schleifen-Konstruktion:
Für alle Primzahlen H bis H_MAX und alle Primzahlen K bis K_MAX
sucht man die Primzahl P mit der Eigenschaft K*(K+P) = H + U, und wenn
es sie gibt, und wenn sie von K und H verschieden ist, dann hat man ein
Lösungstripel (K,P,H) gefunden und kann es einsammeln.
Der entsprechende Test ist einfach, weil nach P aufgelöst werden kann.
Wenn P = (H+U)/K - K eine von K und H verschiedene Primzahl ist, kann
man einsammeln.

Das Maple-Programm ist nun denkbar einfach geworden und Du kannst es
sicher leicht in Deine Programmierumgebung einpassen.

#
# Bauer1 - liefert zu gegebenem U alle Lösungen von
# K*(K+P) = H + U
# mit paarweise verschiedenen Primzahlen K, P und H,
# für die H <= H_MAX ist. Die Liste der Lösungen
# [K,P,H] ist nach der Summe K+P+H sortiert.
#
Bauer1 := proc(U,H_MAX)
local K_MAX,funde,fundsort,H,K,P;
K_MAX := floor(evalf(sqrt(H_MAX + U + 1))-1);
funde := []:
H := 1;
while true do
H := nextprime(H);
K := 1;
while true do
K := nextprime(K);
if K <> H then
# Dann muss ich doch nur P = (H+U)/K - K ausrechnen und falls
# P eine ganze Zahl und prim und nicht in {K,H} ist, dann darf
# ich (K,P,H) als Fund bezeichnen.
P := (H+U)/K - K;
if type(P,integer) and isprime(P)
and P <> K and P <> H then
funde := [op(funde),[K,P,H]];
fi;
fi;
if K > K_MAX then
break;
fi;
od;
if H > H_MAX then
break;
fi;
od:
fundsort := sort(funde,(x,y)->evalb(sum3(x)<=sum3(y))):
return fundsort;
end:

Beispiel 1
==========
dsmschreib := Bauer1(51, 53077):
nops(dsmschreib);
1810
dsmschreib[1..5];
[[7, 3, 19], [2, 29, 11], [5, 11, 29], [5, 17, 59], [7, 13, 89]]

Beispiel 2
==========
dsmorig := Bauer1(120,53077):
nops(dsmorig);
1
dsmorig;
[[11, 2, 23]]

Beispiel 1 behandelt das aktuelle Thema U = 51, und von den 1810
Lösungen habe ich die ersten 5 gezeigt.

Beispiel 2 führt mit U = 120 zu den Anfängen des Threads zurück.
Für K(K+2) = H + 120 findet sich mit paarweise verschiedenen Primzahlen
K, P und H, wie bereits bewiesen, nur diese eine Lösung. Zum Spaß habe
ich im Beispiel bis H = 53077 suchen lassen, aber es ist klar, dass nie
wieder ein anderes Lösungstripel gefunden werden kann.

~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~

Die Beschäftigung mit den Daten macht wirklich Spaß.

Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
auftritt. (Ich verrate es nicht, wäre ja schade.)

Auch die Summen K+P+H, nach denen ich die Tripel sortiere, finde ich
interessant. Ich habe Folgendes festgestellt:
#
# Die ersten zwei Tripel mit gleicher Summe (117) sind:
# [5, 23, 89]
# [11, 3, 103]
#
# Die ersten drei Tripel mit gleicher Summe (8269) sind:
# [ 7,1033, 7229]
# [19, 397, 7853]
# [31, 229, 8009]
#

Lieben Gruß,
Rainer



Jens Kallup

unread,
Nov 30, 2021, 9:41:32 AM11/30/21
to
Am 30.11.2021 um 15:03 schrieb Rainer Rosenthal:
>
> Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
> auftritt. (Ich verrate es nicht, wäre ja schade.)

ehm ... halllo ... Herr Lehrer .... ich weiß es evtl.
darf ichs aufschreiben ?

hihi

Gruß, Jens (kleiner Schlawiener unser Rainer :-) Spass.

Brigitta Jennen

unread,
Nov 30, 2021, 10:20:13 AM11/30/21
to
Rainer Rosenthal schrieb am Dienstag, 30. November 2021 um 15:03:23 UTC+1:

> zum Thema Primzahlen hatte ich Dir schon was geschrieben, und auch, dass
> ich in Maple, wie in eigentlich jeder höheren Sprache, fertige
> Funktionen dafür zur Verfügung gestellt bekomme.
>
> Nach dem ersten schlampigen Programm-Entwurf habe ich nochmal nachgedacht.
> Der Ansatz, eine Schleife über H laufen zu lassen, ist völlig OK.
> Denn die Formel K*(K+P) = H + U sagt mir, dass das zu gegebenem H
> gehörende K maximal ist, wenn P minimal ist. P ist mindestens 2.
> Somit gibt die Auflösung von x*(x+2) = H + U einen Wert x, den K nicht
> übertreffen kann. Zu gegebenem H_MAX findest Du darüber K_MAX.
> Was dann folgt, ist eine verschachtelte Schleifen-Konstruktion:
> Für alle Primzahlen H bis H_MAX und alle Primzahlen K bis K_MAX
> sucht man die Primzahl P mit der Eigenschaft K*(K+P) = H + U, und wenn
> es sie gibt, und wenn sie von K und H verschieden ist, dann hat man ein
> Lösungstripel (K,P,H) gefunden und kann es einsammeln.
> Der entsprechende Test ist einfach, weil nach P aufgelöst werden kann.
> Wenn P = (H+U)/K - K eine von K und H verschiedene Primzahl ist, kann
> man einsammeln.
>
> Das Maple-Programm ist nun denkbar einfach geworden und Du kannst es
> sicher leicht in Deine Programmierumgebung einpassen.
>

Ich werde das ganz sicher tun, nachdem ich festgestellt habe, dass ich mit Excel
leider doch zu sehr limitiert bin und in eine Sackgasse laufe.

Gekommen bin ich bisher soweit, dass ich zunächst mal probehalber alle Primzahlen
zwischen 1 und 10 000 000 (es sind 664 579) in ein Array geschrieben habe und
die Tripeltests jetzt im Prinzip durchführen könnte.
Excel 64-Bit schluckt das von der Größe her noch problemlos.
Aber allein das Ermitteln der Primzahlen in diesem noch überschaubaren Bereich
dauert mit meinem selbstgebauten Primzahltest, obwohl optimiert, auf meinem Notebook
mit i7-Prozessor schon rund 10 Minuten, und da ist noch kein einziges Tripel
getestet.

Ich hatte eigentlich die Idee, jetzt folgendes zu machen:

Nutze den Zahlenbereich des Datentyps "Long" vollständig aus, d.h. ermittle zunächst alle
Primzahlen zwischen 1 und 2.147.483.647 (das sind ca. 99 940 774) und schreibe die in ein Array.
Das wird dauern - OK.
Aber die stehen jetzt also in einer einzigen Riesenspalte untereinander.

Würde ich alle möglichen Zweierkombinationen dieser Werte suchen, müsste
ich einfach das "Kreuzprodukt" in ein neues, zweidimensionales Array schreiben.
Entsprechend bei allen möglichen 3-er-Kombinationen ein "dreidimensionales Kreuzprodukt", bei dem
ich mehrere Diagonalen streichen kann, weil Kombinationen, wo eine Zahl mehrfach vorkommt,
nicht erlaubt sind.

Diese per "dreidimensionalem Kreuzprodukt" ermittelten Tripel, die in einem dreidimensionalen
Array stehen, sind jetzt
relativ einfach und schnell mit einer Schleife zu durchlaufen und auf Gültigkeit der
Bedingung K * (K + P) = 51 + H
zu prüfen.

Für die Obergrenze des Datentyps Long sprengt allerdings das Array, das die Kreuzprodukt-Tripel
aufnehmen soll, alle Grenzen. Das Array müsste 99 940 774^3 Einträge aufnehmen,
und da geht Excel die Luft aus (Überlauf).

Immerhin: Für kleinere Zahlen funktioniert dieser Weg.

> Die Beschäftigung mit den Daten macht wirklich Spaß.
>

Geht mir genau so.
Ich hätte nie vermutet, dass die Ausgangsaufgabe in solch flirrende Seitentäler führen
würde. Auch hieran sehe ich die Vermutung bestätigt, dass die Welt direkt vor unserer Nase
noch viel bizarrer ist, als es den Anschein hat.

> Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
> auftritt. (Ich verrate es nicht, wäre ja schade.)
>

Das ist mir auch aufgefallen, ohne dass ich allerdings bis jetzt näher darüber
nachgedacht habe.

> Auch die Summen K+P+H, nach denen ich die Tripel sortiere, finde ich
> interessant. Ich habe Folgendes festgestellt:
> #
> # Die ersten zwei Tripel mit gleicher Summe (117) sind:
> # [5, 23, 89]
> # [11, 3, 103]
> #
> # Die ersten drei Tripel mit gleicher Summe (8269) sind:
> # [ 7,1033, 7229]
> # [19, 397, 7853]
> # [31, 229, 8009]
> #
>

Ich werde jetzt also erstmal versuchen, das doch außerhalb von Excel zu realisieren.
Maple ist teuer, Mathematica noch mehr.
Also werd ich's mal mit Python versuchen und berichten, sobald ich was zu berichten
habe :-)

Ganz herzlichen Dank und
LG B.

> Lieben Gruß,
> Rainer

Rainer Rosenthal

unread,
Nov 30, 2021, 11:07:34 AM11/30/21
to
Am 30.11.2021 um 16:20 schrieb Brigitta Jennen:
> Rainer Rosenthal schrieb am Dienstag, 30. November 2021 um 15:03:23 UTC+1:
>
>> Für alle Primzahlen H bis H_MAX und alle Primzahlen K bis K_MAX
>> sucht man die Primzahl P mit der Eigenschaft K*(K+P) = H + U, und wenn
>> es sie gibt, und wenn sie von K und H verschieden ist, dann hat man ein
>> Lösungstripel (K,P,H) gefunden und kann es einsammeln.
>> Der entsprechende Test ist einfach, weil nach P aufgelöst werden kann.
>> Wenn P = (H+U)/K - K eine von K und H verschiedene Primzahl ist, kann
>> man einsammeln.

siehe nächsten Abschnitt.

> Diese per "dreidimensionalem Kreuzprodukt" ermittelten Tripel, die in einem dreidimensionalen
> Array stehen, sind jetzt
> relativ einfach und schnell mit einer Schleife zu durchlaufen und auf Gültigkeit der
> Bedingung K * (K + P) = 51 + H
> zu prüfen.

Diesen 3-dimensionalen Ansatz hatte ich auch erst, aber wie oben zu
sehen, genügen zwei Dimensionen. Zu K und H gibt es höchstens ein
passendes P, und das muss die Form P = (H+U)/K - K haben.
Es genügt also, die Paare (K,H) zu überprüfen, ob P = (H+U)/K - K eine
von K und H verschiedene Primzahl ist. Wenn ja, hast Du ein Tripel
gefunden, wenn nein, dann kannst Du Dich um andere Paare (K,H) kümmern.


> Auch hieran sehe ich die Vermutung bestätigt, dass die Welt direkt vor unserer Nase
> noch viel bizarrer ist, als es den Anschein hat.
>
>> Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
>> auftritt. (Ich verrate es nicht, wäre ja schade.)
>>
>
> Das ist mir auch aufgefallen, ohne dass ich allerdings bis jetzt näher darüber
> nachgedacht habe.

Ich sach mal so: es hat damit zu tun, dass 51 = 3*17 ist :-)

> Also werd ich's mal mit Python versuchen und berichten, sobald ich was zu berichten
> habe :-)

PARI/GP auch kostenlos. Ich habe es, wenn auch selten, eingesetzt, wenn
mir Maple zu langsam war. Nachdem ich nun schon ein Weilchen in der
bizarren Welt der 51 herumgekreist bin, könnte ich das ja mal als Anstoß
nehmen, um meine PARI-Kenntnisse aufzufrischen.

Lieben Gruß,
Rainer


Jens Kallup

unread,
Nov 30, 2021, 1:27:01 PM11/30/21
to
Hallo Brigitta,

vor einiger Zeit habe ich ein Projekt aufgenommen, bei dem
es möglich ist mathematische Symbole in einen Editor eintragen
zu können, und an Hand des Musters Berechnungen gemacht werden
können.

Dabei habe ich versucht das GNU C Projekt "GMP" mit einfließen
zu lassen.
Diese GNU Projekt ist in der Lage, den "vollen" Speicher einer
CPU, einschließlich des Speichers der RAM-Erweiterung zu nutzen.

Das hat einmal den Vorteil, das man auch auf "alten" Intel/AMD
mit 4 GigaByte-RAM auch rund 4 GB ausnutzen konnte, was für
Windows 7,8,10 Rechnern - bei 32 Bit Versionen leider nicht
möglich ist, weil dort nur maximal 2 GB verwendbar sind.

Das Ganze schaut dann natürlich bei Windows 10 Rechner mit 64-
Bit CPU auch nicht anders aus, weil neben den Berechnungen viele
unnütze graphische Routinen ausgeführt werden.

Für eine solche Aufgabe würde ich versuchen, einen Debian-Linux
Rechner aufzusetzen.
Ich habe hier zum Beispiel einen solchen Dell-Server mit einer
2 TerraByte Speicherplatte und rund 20 GigaByte RAM zur Verfügung.
Ich weiß, alles schon alter Schnee, aber für mich reicht das.

Das bedeutet dann für mich, wenn ich ein mit den GNU C/C++
programmiertes Programm, das die GMP Bibliothek nutzt rund 2 TB
Speicher + rund 20 GB RAM zur Verfügung habe, was dann rund 2.2 TB
Speicherzellen programmierbar sind.

Damit ist man dann nicht auf 2 ^n - 1. => 2 ^64 - 1.
beschränkt.

Die GMP Lib ist OpenSource, und kann auch vom Debian Server gesaugt
werden.
Falls Du Probleme haben solltest, kannst Du hier in dieser Gruppe
mit mir und den anderen diskutieren.

Und falls gewünscht, kann ich Dir, liebe Brigitta, auch testweise
versuchen, einen Account einrichten, und Du kannst dann meinen Server
für kurze Zeit beanspruchen.

Mit freundlichen Grüßen

Euer Schreiberling, Jens

Rainer Rosenthal

unread,
Nov 30, 2021, 3:12:16 PM11/30/21
to
Am 30.11.2021 um 16:20 schrieb Brigitta Jennen:

> ... sehe ich die Vermutung bestätigt, dass die Welt direkt vor unserer Nase
> noch viel bizarrer ist, als es den Anschein hat.
>
Wenn ich die Newsgroup-Beiträge vom Handy per Google betrachte, also
ohne den Filter am heimischen Laptop mit dem Abo bei NewsIndividual(*),
dann wird Deine Vermutung einmal mehr bestätigt :-)

Gruß,
Rainer


(*) https://news.individual.de/
kostet 10 €/Jahr, spart aber Nerven.

Brigitta Jennen

unread,
Nov 30, 2021, 6:50:07 PM11/30/21
to
Rainer Rosenthal schrieb am Dienstag, 30. November 2021 um 21:12:16 UTC+1:
...
Hallo Rainer,
da ich in mein Excel-Programm schon viel Zeit investiert hatte, habe ich das, Deiner Idee folgend,
dass man kein "dreidimensionales Kreuzprodukt" braucht, sondern 2 Dimensionen ausreichen,
zu Ende programmiert - und VBA liefert mir die gleichen Lösungstripel, die Du schon mit Maple
ermittelt hast.
Ich habe zunächst mal nur alle Primzahlen zwischen 1 und 10 000 untersucht, das sind 1229.
Innerhalb dieses Sets ergeben sich 443 Tripel, die unsere Lösungsbedingung K * (K + P) = 51 + H
erfüllen.
Da ich alles händisch nachbauen musste (Primzahltest etc.) und mit Arrays arbeite, ist das Programm
unter VBA natürlich noch quälend langsam. Ich werde deshalb daran gehen, das Ganze zu optimieren,
soweit das möglich ist.
Danach kann der Blick in Richtung Unendlichkeit ein Stück weitergehen.

Mein Verwandter wird das Excelfile auf einer Workstation ausführen - die ist ungefähr um den
Faktor 35 schneller als mein i7-Notebook und hat Speicher ohne Ende.
Und wenn das doch zu lahm sein sollte, setzen wir es um in VB,
wo es sogar den Datentyp "LongLong" gibt und man mit einem compilierten EXE-File arbeiten kann.
Und dann ist man schon wirklich weit in Richtung große Zahlen.
Das tolle ist: Dank Deiner Idee ist der Algorithmus im Prinzip fertig.

So - jetzt ist es wirklich spät.
Aber ich spendiere auch noch ein paar "höhere" Lösungstripel (hoffentlich ohne Fehler),
wie gesagt, wegen der Geschwindigkeit zunächst nur aus dem Intervall von 1 bis 10 000.
(Das nächste Ziel ist 1 bis 10 000 000).

47, 17, 2957
47, 53, 4649
47, 59, 4931
47, 107, 7187
47, 137, 8597
47, 149, 9161
53, 3, 2917
53, 5, 3023
53, 17, 3659
53, 41, 4931
53, 71, 6521
53, 101, 8111
53, 107, 8429
53, 113, 8747
59, 3, 3607
59, 11, 4079
59, 23, 4787
59, 41, 5849
59, 47, 6203
59, 59, 6911
59, 89, 8681
59, 107, 9743
61, 3, 3853
61, 13, 4463
61, 37, 5927
61, 67, 7757
61, 73, 8123
61, 97, 9587
67, 3, 4639
67, 13, 5309
67, 19, 5711
67, 37, 6917
71, 17, 6197
71, 41, 7901
71, 53, 8753
73, 31, 7541
79, 3, 6427
79, 19, 7691
79, 43, 9587
83, 5, 7253
83, 23, 8747
89, 11, 8849
97, 3, 9649

Grüße B.

Brigitta Jennen

unread,
Dec 1, 2021, 5:05:15 AM12/1/21
to
kallu...@web.de schrieb am Dienstag, 30. November 2021 um 19:27:01 UTC+1:
> Hallo Brigitta,

> Falls Du Probleme haben solltest, kannst Du hier in dieser Gruppe
> mit mir und den anderen diskutieren.
> Und falls gewünscht, kann ich Dir, liebe Brigitta, auch testweise
> versuchen, einen Account einrichten, und Du kannst dann meinen Server
> für kurze Zeit beanspruchen.

Das wird nicht nötig sein.
Trotzdem vielen Dank für Dein Hilfsangebot.
Das Programm läuft - wie gesagt - inzwischen auf einer professionellen Workstation
mit der man die Erdbebenrisiken in Südamerika berechnet.
Wir sind inzwischen bei den ersten 100 000 Primzahlen durch.
Mal sehen, welche überraschenden Einsichten sich ergeben ...

LG B.

Brigitta Jennen

unread,
Dec 1, 2021, 7:08:27 AM12/1/21
to
Rainer Rosenthal schrieb am Dienstag, 30. November 2021 um 15:03:23 UTC+1:
...

> Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
> auftritt. (Ich verrate es nicht, wäre ja schade.)

Hier ein Beweis für die Behauptung: K muss ungleich 3 sein,
als Widerspruchsbeweis:

Voraussetzung(en):
a. K * (K + P) = 51 + H
b. (K, P, H) e |P (Menge der Primzahlen)

Annahme: K = 3
in (1) eingesetzt: 3 * (3 + P) = H + 51
9 + 3P = H + 51
3P = H - 42
P = H/3 - 14
P - 14 = H/3

P kann nicht 2 sein, also ist P ungerade und größer als 2.
Demnach ist auch P - 14 (linke Seite) ungerade.
Somit muss auch H/3 (rechte Seite) ungerade sein.

Da H lt. Voraussetzung eine Primzahl ist, ist sie nur durch 1 und sich selbst
teilbar.
Die Teilung durch 3 ist jedoch nicht lösbar, wenn H eine Primzahl
ist (Voraussetzung b.).

Damit liegt ein Widerspruch zur Voraussetzung b. vor.
Also muss die Annahme K=3 falsch sein.

Grüße B.

> Lieben Gruß,
> Rainer

Pether Hubert

unread,
Dec 1, 2021, 8:50:09 AM12/1/21
to
Am 01.12.21 um 13:08 schrieb Brigitta Jennen:
> Rainer Rosenthal schrieb am Dienstag, 30. November 2021 um 15:03:23 UTC+1:
>> Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
>> auftritt. (Ich verrate es nicht, wäre ja schade.)
> Hier ein Beweis für die Behauptung: K muss ungleich 3 sein,
> als Widerspruchsbeweis:
> Voraussetzung(en):
> a. K * (K + P) = 51 + H
> b. (K, P, H) e |P (Menge der Primzahlen)
> Annahme: K = 3
> in (1) eingesetzt: 3 * (3 + P) = H + 51

Ich denke, ab hier kommen wir auch schneller zum Ziel: Da die linke
Seite der Gleichung durch 3 teilbar ist, ist es auch die rechte Seite,
und da 51 durch 3 teilbar ist, muß auch H durch drei teilbar sein.
Weil H prim ist, muß H=3 sein. Hättest Du die Voraussetzung, daß
K, P und H paarweise verschieden sind, nicht weggelassen, wären wir
jetzt fertig. So aber müssen wir noch P ausrechnen, was 15 ergibt und
mithin nicht prim ist. -> Widerspruch

Ciao
Pether

Brigitta Jennen

unread,
Dec 1, 2021, 9:08:55 AM12/1/21
to
Pether Hubert schrieb am Mittwoch, 1. Dezember 2021 um 14:50:09 UTC+1:
> Am 01.12.21 um 13:08 schrieb Brigitta Jennen:
...
> > in (1) eingesetzt: 3 * (3 + P) = H + 51
> Ich denke, ab hier kommen wir auch schneller zum Ziel: Da die linke
> Seite der Gleichung durch 3 teilbar ist, ist es auch die rechte Seite,
> und da 51 durch 3 teilbar ist, muß auch H durch drei teilbar sein.
> Weil H prim ist, muß H=3 sein. Hättest Du die Voraussetzung, daß
> K, P und H paarweise verschieden sind, nicht weggelassen, wären wir
> jetzt fertig. So aber müssen wir noch P ausrechnen, was 15 ergibt und
> mithin nicht prim ist. -> Widerspruch

Das gefällt mir sehr sehr gut.
So ist der Beweis noch klarer. Vielen Dank!
Grüße B.

> Ciao
> Pether

Rainer Rosenthal

unread,
Dec 1, 2021, 10:57:23 AM12/1/21
to
Am 01.12.2021 um 13:08 schrieb Brigitta Jennen:
> Rainer Rosenthal schrieb am Dienstag, 30. November 2021 um 15:03:23 UTC+1:
> ...
>
>> Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
>> auftritt. (Ich verrate es nicht, wäre ja schade.)
>
> Hier ein Beweis für die Behauptung: K muss ungleich 3 sein,
> als Widerspruchsbeweis:
>
> Voraussetzung(en):
> a. K * (K + P) = 51 + H
> b. (K, P, H) e |P (Menge der Primzahlen)
>
> Annahme: K = 3
> in (1) eingesetzt: 3 * (3 + P) = H + 51
> 9 + 3P = H + 51
> 3P = H - 42
> P = H/3 - 14
> P - 14 = H/3
>
> P kann nicht 2 sein, also ist P ungerade und größer als 2.
> Demnach ist auch P - 14 (linke Seite) ungerade.
> Somit muss auch H/3 (rechte Seite) ungerade sein.
>
> Da H lt. Voraussetzung eine Primzahl ist, ist sie nur durch 1 und sich selbst
> teilbar.
> Die Teilung durch 3 ist jedoch nicht lösbar, wenn H eine Primzahl
> ist (Voraussetzung b.).

Ätsch: es könnte H = 3 sein.
Du hast die Voraussetzung

c. K, P, und H paarweise verschieden

weggelassen :-)

>
> Damit liegt ein Widerspruch zur Voraussetzung b. vor.
> Also muss die Annahme K=3 falsch sein.
>
Gegen b. liegt kein Widerspruch vor.
Sondern gegen c.

Genauer gesagt: gegen die Kombination aus b. und c., denn wenn c.
erfüllt wird, kann H nicht 3 sein, aber 3 ist die einzige durch 3
teilbare Primzahl, und somit läge dann ein Widerspruch gegen b. vor.

Übrigens wird sich wegen gleicher Argumentation auch kein K = 17 unter
den Lösungstripeln finden lassen.

Die Suche bis H_MAX = 53077 liefert 1810 Tripel:
[K,P,H] = [229, 3, 53077] hat H = H_MAX, K = K_MAX und Summe 53309.
Das Tripel mit der größten Summe ist
[K,P,H] = [2, 26387, 52727], die Summe ist 79116.

Lieben Gruß,
Rainer

Rainer Rosenthal

unread,
Dec 1, 2021, 11:26:50 AM12/1/21
to
Am 01.12.2021 um 14:50 schrieb Pether Hubert:
> So aber müssen wir noch P ausrechnen, was 15 ergibt und
>
Der war gut!



Brigitta Jennen

unread,
Dec 1, 2021, 11:30:10 AM12/1/21
to
Rainer Rosenthal schrieb am Mittwoch, 1. Dezember 2021 um 16:57:23 UTC+1:
...
> Ätsch: es könnte H = 3 sein.
> Du hast die Voraussetzung
>
> c. K, P, und H paarweise verschieden
>
> weggelassen :-)

Aua.
Und mir hat der Beweis so gut gefallen ...
Aber Du hast natürlich recht.
Mit Deiner "Reparatur" und Pethers Anmerkungen ist jetzt alles gerichtet :-)
Ich fasse mal zusammen:

Die Ausgangsaufgabe K*(K+P)=120+H
hatte genau eine Lösung. Dieser Eindeutigkeitsbeweis konnte erbracht werden.

Eine kleine Änderung auf K*(K+P)=51+H
zeigte Verblüffendes: jetzt gibt es wahrscheinlich (Beweis steht noch aus)
unendlich viele Lösungs-Tripel.

K kann zudem nicht 3 sein und auch nicht den Wert 17 annehmen (Beweis erbracht).
Es scheint, als ob einige Zahlen in den Tripeln häufiger auftreten, als intuitiv erwartet.

Die Lösungstripel im Bereich von 1 bis 1 Million wurden gerade bestimmt und ich werde
sie mir demnächst genauer ansehen.

LG B.

Rainer Rosenthal

unread,
Dec 1, 2021, 1:06:20 PM12/1/21
to
Am 01.12.2021 um 17:30 schrieb Brigitta Jennen:

> Ich fasse mal zusammen:
>
> Die Ausgangsaufgabe K*(K+P)=120+H
> hatte genau eine Lösung. Dieser Eindeutigkeitsbeweis konnte erbracht
werden.
>

Die Originalaufgabe ist reizvoll, und Du hast sie durch Veränderung des
"Überschusses" U = 120 zu U = 51 interessant variiert.

Ich möchte Deine Zusammenfassung gerne so formulieren, dass noch
"Spiel"-Raum bleibt.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Die KPHU-Aufgabe
================

Zu vorgegebener natürlicher Zahl U sollen Tripel (K,P,H) paarweise
verschiedener Primzahlen gefunden werden, so dass die Gleichung

K(K+P) = H + U (*)

erfüllt ist. Tripel (K,P,H) wird Lösungstripel zu U genannt.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Der genannte Eindeutigkeitsbeweis für den Fall U = 120 gelang deswegen,
weil U eine gerade Zahl und U+1 ein Quadrat ist.
Jedes U mit dieser Eigenschaft hat höchstens ein Lösungstripel.
Der Beweis in der allgemeineren Form: Sei U eine gerade Zahl.
Wenn H = 2 ist, steht rechts in (*) eine gerade Zahl, links aber eine
ungerade.
Also ist H nicht 2 und somit ist die rechte Seite von (*) ungerade.
Die linke Seite von (*) kann nur ungerade sein, wenn P = 2 ist.
Nun sind nur noch K und H zu bestimmen.
Die linke Seite von (*) ist K(K+2) = (K+1)^2 - 1.
Es gilt also H = (K+1)^2 - (U+1).
Nach Voraussetzung ist U+1 ein Quadrat, also U+1 = V^2.
Daraus folgt H = (K+1)^2 - V^2, d.h. H = (K+1+V)(K+1-V).
Da H prim ist, muss ein Faktor 1 sein.
Für den ersten Faktor ist das unmöglich, also muss (K+1-V) = 1 sein,
d.h. K = V.
Damit ist K = V = Wurzel(U+1) und H = K + 1 + V = 2K+1.
Nur wenn 2K+1 prim ist, haben wir dann auch wirklich ein Lösungstripel(1).

Außer U = 120 und U = 51 haben wir damit eine ganze Klasse von U-Werten
mit bekannten Lösungen: U gerade und U = K^2-1 für eine Primzahl K.
Wenn 2K+1 prim ist (dh. K eine Sophie-Germain-Primzahl), gibt es genau
eine Lösung.
Wenn 2K+1 nicht prim ist, gibt es keine Lösung.

Ich finde, dass es an der Zeit ist, andere /gerade/ U-Werte unter die
Lupe zu nehmen. Die Untersuchung wird wohl einfacher, weil wir schon
wissen, dass P = 2 sein muss. Ich schreibe das als Plan und freue mich
schon darauf, die Funktion Bauer1() darauf loszulassen. Keine Ahnung,
wohin das führt. Aber selbst, wenn es irgendwo in die Irre führt, war es
doch ein netter Versuch, die "bizarre Welt" zu untersuchen.

Lieben Gruß,
Rainer

(1) Zu U = 48 gehört K = 7 mit H = 2*7+1 = 15, d.h. es gibt kein
Lösungstripel, weil H nicht prim ist.

Gus Gassmann

unread,
Dec 1, 2021, 1:33:43 PM12/1/21
to
Faszinierender Thread. Ich hab ihn am Anfang ignoriert, aber am Ende gefällt er mir sehr. Irgendwie erinnert mich das an die (ternäre) Goldbach-Vermutung (oder, mehr präziser, an eine partielle Umkehrung). Wie gesagt, faszinierend.

Rainer Rosenthal

unread,
Dec 1, 2021, 3:35:36 PM12/1/21
to
Am 01.12.2021 um 19:06 schrieb Rainer Rosenthal:

> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Die KPHU-Aufgabe
> ================
>
> Zu vorgegebener natürlicher Zahl U sollen Tripel (K,P,H) paarweise
> verschiedener Primzahlen gefunden werden, so dass die Gleichung
>
> K(K+P) = H + U
>
> erfüllt ist. Tripel (K,P,H) wird Lösungstripel zu U genannt.
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> ... ganze Klasse von U-Werten mit bekannten Lösungen:
> U gerade und U = K^2-1 für eine Primzahl K.
> Wenn 2K+1 prim ist (dh. K eine Sophie-Germain-Primzahl), gibt es genau
> eine Lösung.

Stimmt. Siehe Beweis oben.

> Wenn 2K+1 nicht prim ist, gibt es keine Lösung.

Von wegen! Nehmen wir mal K = 13. Das ist keine keine SG-Primzahl, weil
2*13+1 = 27 nicht prim ist.
Aber U = 168 = 13^2 - 1 hat genau eine Lösung.

Ich stehe staunend da und erst recht ins Staunen kam ich bei U = 528 =
23^2 - 1, denn das liefert /mindestens/(*) 2 Lösungen. Da habe ich noch
allerlei zu lernen.
Bei U = 5328 = 73^2 - 1 finde ich /mindestens/(*) 3 Lösungen.
Wie Gus Gassmann (hallo!) so richtig feststellte: faszinierend!

Das zu verstehen, verschiebe ich auf morgen.

Gruß,
RR

(*) Oder vielleicht /genau/?


Rainer Rosenthal

unread,
Dec 1, 2021, 3:56:41 PM12/1/21
to
Am 01.12.2021 um 21:35 schrieb Rainer Rosenthal:
> Am 01.12.2021 um 19:06 schrieb Rainer Rosenthal:
>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> Die KPHU-Aufgabe
>> ================
>>
>> Zu vorgegebener natürlicher Zahl U sollen Tripel (K,P,H) paarweise
>> verschiedener Primzahlen gefunden werden, so dass die Gleichung
>>
>> K(K+P) = H + U
>>
>> erfüllt ist. (K,P,H) heißt Lösungstripel oder Lösung zu U.
>>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> ... ganze Klasse von U-Werten mit bekannten Lösungen: U gerade und U =
>> K^2-1 für eine Primzahl K.
>> Wenn 2K+1 prim ist (dh. K eine Sophie-Germain-Primzahl), gibt es genau
>> eine Lösung.
>
> Stimmt. Siehe Beweis oben.
>

O Menno, der Beweis hat ein Loch.

>> Wenn 2K+1 nicht prim ist, gibt es keine Lösung.
>
> ... erst recht ins Staunen kam ich bei U = 528 = 23^2 - 1,
> denn das liefert /mindestens/(*) 2 Lösungen.

Und dabei ist 23 sogar eine SG-Primzahl: 2*23+1 = 47.
Wenigstens war eine der beiden Lösungen von der erwarteten Form
(23,2,47), aber die andere (nein ich zeige sie noch nicht!) ist
irgendwie durchs Beweis-Loch geschlüpft. Hammer!

>
> Das zu verstehen, verschiebe ich auf morgen.
>
Versprochen :-)

Gruß,
RR

Rainer Rosenthal

unread,
Dec 1, 2021, 4:37:45 PM12/1/21
to
Am 26.11.2021 um 02:05 schrieb Rainer Rosenthal:
> Am 25.11.2021 um 16:54 schrieb Brigitta Jennen:
>>
>> Hier zunächst die Aufgabe: Bauer mit Abitur
>>
>> Ein Bauer stellt beim Zählen seiner Tiere fest, dass die Anzahlen seiner
>> Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind. Außerdem
>> fällt ihm auf, dass die Anzahl der Kühe multipliziert mit der Summe aus
>> Anzahl der Kühe und Anzahl der Pferde die Anzahl der Hühner um
>> 120 übersteigt.
>> Wie viele Kühe, Pferde und Hühner befinden sich auf seinem Hof?
>>
>
> Mit K, P, H als Anzahlen der Kühe, Pferde und Hühner bekommen wir die
> Gleichung
>
> K*(K+P) - H = 120     (1)
>
> Die drei Zahlen können nicht alle ungerade sein, weil sonst links etwas
> Ungerades steht, und das kann nicht gleich der geraden Zahl 120 sein.
> Die einzige gerade Primzahl ist 2, und alle Anzahlen sind verschieden,
> d.h. genau eine der drei Anzahlen ist 2.
>
> Kann H = 2 sein?
> Annahme H = 2. Dann ist K*(K+P) = 122 = 2*61 ein Produkt aus 2
> Primzahlen, und da K = 2 ausgeschlossen ist, weil K ungleich H sein
> muss, müsste K+P = 2 sein, was offenbar auch unmöglich ist, weil
> Primzahlen größer als 1 sind.
>
So weit, so gut.
Wir haben inzwischen diese Aufgabe auch für andere "Überschuss"-Werte U
betrachtet, und ich war so keck, den an dieser Stelle abgebrochenen
Beweis zu verallgemeinern auf andere Fälle von geraden Werten von U,
außer U = 120.

Dabei ist mir aber was Wesentliches entgangen, was bei U = 120 gilt!
Ich konnte H = 2 deswegen ausschließen, weil H + U = 2 + 120 = 122 die
spezielle Form 2*r hat mit einer Primzahl r.

Das habe ich hier explizit und korrekt ausgeführt, aber beim
Verallgemeinern habe ich es mal eben locker übersehen. Gut, dass ich da
noch selbst darauf gekommen bin.

Schläft sich besser :-)

Gruß,
RR




Rainer Rosenthal

unread,
Dec 1, 2021, 4:55:48 PM12/1/21
to
Am 01.12.2021 um 19:06 schrieb Rainer Rosenthal:
#
# K(K+P) = H + U (*)
#
> Der genannte Eindeutigkeitsbeweis für den Fall U = 120 gelang deswegen,
> weil U eine gerade Zahl und U+1 ein Quadrat ist.
> Jedes U mit dieser Eigenschaft hat höchstens ein Lösungstripel.

O nein, weit gefehlt!
Im Falle U = 120 gilt für H = 2, dass H + U = 122 = 2*61 ist und damit
die Form H + U = 2*r mit Primzahl r hat.

> Der Beweis in der allgemeineren Form: Sei U eine gerade Zahl.
> Wenn H = 2 ist, steht rechts in (*) eine gerade Zahl, links aber eine
> ungerade.

Du meine Güte! Setzen, sechs! Der Faktor (K+P) ist gerade, wenn K und P
ungerade Primzahlen sind. Also steht dann links in (*) auch was Gerades.
So einfach geht es also nicht. Im Originalbeweis für U = 120 wurde auch
mehr Gehirnschmalz investiert.

Der Beweis kann nur verallgemeinert werden, wenn sichergestellt ist,
dass U+2 von der Form 2*r ist mit Primzahl r.

Na dann. Das Beweis-Loch ist gefunden und gestopft.
#
# Der genannte Eindeutigkeitsbeweis für den Fall U = 120 lässt sich auf
# andere gerade U übertragen, für die U + 1 ein Quadrat ist /und/
# für die U + H = 2*r ist mit Primzahl r. Dann gilt wirklich:
# Jedes U mit diesen Eigenschaften hat höchstens ein Lösungstripel.
#
Jetzt gehe ich aber ganz wirklich schlafen.

Gruß,
RR






Ralf Goertz

unread,
Dec 2, 2021, 3:10:25 AM12/2/21
to
Am Wed, 1 Dec 2021 22:55:46 +0100
schrieb Rainer Rosenthal <r.ros...@web.de>:

> Am 01.12.2021 um 19:06 schrieb Rainer Rosenthal:
> #
> # K(K+P) = H + U (*)
> #
> > Der genannte Eindeutigkeitsbeweis für den Fall U = 120 gelang
> > deswegen, weil U eine gerade Zahl und U+1 ein Quadrat ist.
> > Jedes U mit dieser Eigenschaft hat höchstens ein Lösungstripel.
>
> O nein, weit gefehlt!
> Im Falle U = 120 gilt für H = 2, dass H + U = 122 = 2*61 ist und
> damit die Form H + U = 2*r mit Primzahl r hat.

Ich habe den Thread (außer die Originalaufgabe zu lösen) nicht intensiv
sondern nur sporadisch verfolgt. Ich dachte zuallerst (neben der
schnellen Vermutung, dass eine der Primzahlen 2 sein müsste), dass die
Tatsache, dass 120=5! eine Rolle spielen könnte. Vielleicht ist es
interessant, sich U=n! für verschiedene n anzuschauen…

Michael Klemm

unread,
Dec 2, 2021, 6:03:21 PM12/2/21
to
Andreas Leitgeb schrieb am Donnerstag, 25. November 2021 um 22:02:23 UTC+1:
> Brigitta Jennen <ladya...@gmail.com> wrote:
> > Hallo,
> > hier eine - wie ich finde - wunderbar lehrreiche Aufgabe, wie häufig
> > in eine kleine Geschichte verpackt. Es geht mir NICHT UM DIE LÖSUNG,
> > die ist mit einigem Nachdenken zu erschließen, und ich gebe sie unten
> > gerne an, weil sie doch etwas aufwändig ist, sondern um den Nachweis,
> > dass die gefundene Lösung DIE EINZIG MÖGLICHE ist.
> Habe mir die Lösung durchgelesen, und dabei den Eindruck gehabt, als
> könnte es ohnehin gar keine andere Lösung geben. Hast ja eigentlich
> alle alternativ-Kandidaten sauber ausgeschlossen.

Stimmt, die Anzahl der Kühe ist positiv. Wenn die Kühe nur geliehen sind, kommt auch K = -13, H = 23 in Betracht.

Gruß
Michael

Rainer Rosenthal

unread,
Dec 2, 2021, 6:34:04 PM12/2/21
to
Am 03.12.2021 um 00:03 schrieb Michael Klemm:
>
> Stimmt, die Anzahl der Kühe ist positiv. Wenn die Kühe nur geliehen sind, kommt auch K = -13, H = 23 in Betracht.
>
Wir nehmen alles, auch komplexe Kühe, wenn es sein muss :-)

Gruß,
RR


Brigitta Jennen

unread,
Dec 3, 2021, 7:25:24 AM12/3/21
to
Rainer Rosenthal schrieb am Freitag, 3. Dezember 2021 um 00:34:04 UTC+1:
...
> Wir nehmen alles, auch komplexe Kühe, wenn es sein muss :-)

Wie wär's mit transzendenten Kühen?
Die des Kleinbauern, der neulich angerufen hatte, sind nach seiner Aussage religiös
und glauben fest ans Jenseits. (Er hat ihnen deshalb nur solche Kuhglocken verpasst,
die mit den Kirchenglocken im Ort harmonisch orchestrieren).

Ich bleibe mal noch bei der 51-er-Variante der Aufgabe.

Nachfolgend die (vorläufige) Anzahl der Lösungstripel, die das Such-Programm
unter Excel-VBA mit Rainers Algorithmus (leicht modifiziert) ausgeworfen hat:

Primzahlbereich......Anzahl Primzahlen......Anzahl Lösungstripel...Rechenzeit Notebook Rechenzeit Workstation
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Primzahlen bis 10^1: ........... 4 ........ ...........0 .................... ..............0 ..................... ................0
Primzahlen bis 10^2: .......... 25 ................10 ................................... 0.01953125 s ................ 0
Primzahlen bis 10^3: ......... 168 .............. 71 ................................... 0.03515625 s ................ 0
Primzahlen bis 10^4: ....... 1 229 ........... 443 ................................... 0.18750000 s ................ 0
Primzahlen bis 10^5: ....... 9 592 ........ 3 154 ................................. 10.68359375 s ................ 0.001
Primzahlen bis 10^6: ..... 78 498 ...... 23 415 .............................. 748.76171875 s ................. 11.92
Primzahlen bis 10^7: ..... 664 579 .(under construction)
Primzahlen bis 10^8: ... 5 761 455 (under construction)
Primzahlen bis 10^9: .................... (under construction)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Das Programm wurde, soweit dies unter VBA mit "Bordmitteln" möglich ist, optimiert.
(Der Flaschenhals ist nicht das Aufsuchen der Primzahlen, sondern die Prüfung
der gefundenen Triplets auf Gültigkeit der vorgegebenen Bedingungen (paarweise
verschiedene Primzahlen, (K * (K + P) = 51 + H), etc.

Wir wollen versuchen, dies noch ein Stück höher zu treiben, obwohl die WS
jetzt auch ins Schwitzen gerät und die Grenze des Zahlenbereichs Long in
Sichtweite kommt.

Aber nachdem schon Sophie Germain vorbeikam - vielleicht grüßt ja auch Monsieur
Mersenne oder irgendjemand anderes aus der Ahnengalerie der Mathematik freundlich
aus der Unendlichkeit zu uns herüber.

Die wichtige Frage, die sich mir stellt:
Sind das wirklich alle Lösungstripel oder wurden wegen ungenauer Programmierung
womöglich einige übersehen? Das kann ich im Moment noch nicht genau abschätzen.
(Hier wird die Statistik mit ihrer Stichprobentheorie hilfreich sein).

Vielleicht führt das Ganze ja auch komplett in eine Sackgasse ...

Irgendwie fühle ich mich an einen Mathematikerwitz erinnert:

Je mehr Käse, desto mehr Löcher.
Je mehr Löcher, desto weniger Käse.
Ergo: Je mehr Käse, desto weniger Käse.

(rein mathematisch, da Transitivität vorliegt, korrekt :-)) )

Oder vielleicht doch das andere Bild:
die Blinden, die einen Elefanten betasten, und ihn beschreiben sollen.
Ich bin - glaube ich - gerade an den großen Ohren gelandet.
Irgendwie werd ich das Gefühl nicht los, den wirklichen Kern des Problems
(den Elephanten) noch nicht mal gestreift zu haben.
Ich hätte nie gedacht, dass die geringfügige Änderung der Ursprungsaufgabe
in soche Untiefen führt.

Bleibt die Frage:
Wir werden jetzt bald eine lange Liste mit Lösungs-Tripeln haben.
Was wäre sinnvollerweise worauf zu prüfen (Muster)?
Mit reiner Intuition will ich das nicht machen, da frag ich doch mal in
die Runde der (hoffentlich) noch Mitlesenden, was möglicherweise
vielversprechend sein könnte.

Grüße B.

Rainer Rosenthal

unread,
Dec 3, 2021, 2:02:26 PM12/3/21
to
Am 03.12.2021 um 13:25 schrieb Brigitta Jennen:

> (Der Flaschenhals ist nicht das Aufsuchen der Primzahlen, sondern die
Prüfung
> der gefundenen Triplets auf Gültigkeit der vorgegebenen Bedingungen
(paarweise
> verschiedene Primzahlen, (K * (K + P) = 51 + H), etc.
> Prüfst Du wirklich Tripel?
Es genügt doch, Paare (H,K) zu testen.
Das maximale K zu gegebenem H kennst Du ja schon, es ist in der Nähe von
Wurzel(51+H). Genaue Formel hatte ich geschrieben, und eine unbedeutende
Verbesserung konnte ich auch noch finden. Unbedeutend, weil das maximale
K um 1 kleiner sein darf, wenn P = 2 ausgeschlossen werden kann.

Testest Du alle Paare (H,K), ob P = (51+H)/K - K prim ist, dann wirst Du
auch nichts übersehen. Darüber hatten wir aber bereits gesprochen, dass
statt dreidimensionaler Suche zweidimensionale ausreicht.

Bei den "Primzahlen bis 10^2" gibt es nicht 10, sondern nur 8
Lösungstripel. Du hast offenbar (2,47,47) und (7,7,47) als Lösungen
zugelassen.

Gruß,
Rainer

Brigitta Jennen

unread,
Dec 4, 2021, 5:12:29 AM12/4/21
to
Rainer Rosenthal schrieb am Freitag, 3. Dezember 2021 um 20:02:26 UTC+1:

> Testest Du alle Paare (H,K), ob P = (51+H)/K - K prim ist, dann wirst Du
> auch nichts übersehen. Darüber hatten wir aber bereits gesprochen, dass
> statt dreidimensionaler Suche zweidimensionale ausreicht.

So hab ich auch - Deinem Vorschlag folgend - das Suchprogramm angelegt.
Hab mich unklar ausgedrückt.

>
> Bei den "Primzahlen bis 10^2" gibt es nicht 10, sondern nur 8
> Lösungstripel. Du hast offenbar (2,47,47) und (7,7,47) als Lösungen
> zugelassen.

Danke für den Hinweis.
Da war tatsächlich die alte Abfrage aus der 1. Version per Copy and paste
reingerutscht. Jetzt stimmt alles.
Bin gerspannt (Mein Wo-Ende - hier schneit's - ist damit schon verplant.)
Grüße B.

>
> Gruß,
> Rainer

Jens Kallup

unread,
Dec 4, 2021, 5:21:09 AM12/4/21
to
Am 04.12.2021 um 11:12 schrieb Brigitta Jennen:
> Da war tatsächlich die alte Abfrage aus der 1. Version per Copy and paste
> reingerutscht. Jetzt stimmt alles.
> Bin g

wie haben die Leute das früher gemacht - an einen Rechenzentrum
hingeradelt, und Aufgaben dort mit der Computerpower berechnen
lassen ... ???

Das macht noch einer Heute ?
Wieviel würde das Kosten ?
Ist das nur Studenten oder Proofs. vorbehalten ?

Ich nehme mal an, das Du auf dem Lande wohnst, und keine Rechenfarm
in der Scheune stehen hast ...

Jens

Brigitta Jennen

unread,
Dec 4, 2021, 7:21:56 AM12/4/21
to
kallu...@web.de schrieb am Samstag, 4. Dezember 2021 um 11:21:09 UTC+1:

> wie haben die Leute das früher gemacht - an einen Rechenzentrum
> hingeradelt, und Aufgaben dort mit der Computerpower berechnen
> lassen ... ???
>
> Das macht noch einer Heute ?
> Wieviel würde das Kosten ?
> Ist das nur Studenten oder Proofs. vorbehalten ?
...
> Ich nehme mal an, das Du auf dem Lande wohnst, und keine Rechenfarm
> in der Scheune stehen hast ...

Früher (1972) machte man das so, dass man sich als Studierende(r)
im Rechenzentrum der Universität vorstellte und einen Zugang zum Rechner
beantragte. Nach einer Einweisung durfte man dann - zumindest an meiner Uni
damals -seine eigenen Programme unbegrenzt laufen lassen.
Grafik gab's noch nicht, wenn man was zeichnen wollte, wurde geplottet.

Der Rechner war seinerzeit, wenn ich mich recht erinnere, eine UNIVAC von IBM, die
einen Raum von 4 x 3 m einnahm und durchaus leistungsfähig war. Die gesamte
Gehaltsabrechnung der Universitätsbediensteten wurde dort ebenso abgewickelt
wie beispielsweise Projekte der Fakultät für Biologie. So wurde schon damals
der gesamte Kurs "Pflanzenbestimmung" digitalisiert.
Studierende, die eine Pflanze bestimmen mussten, hangelten sich nicht mehr
entlang eines dichotomen Bestimmungsschlüssels durch irgendein ein dickes Buch
(z.B. Schmeil-Fitschen o.ä.) - sie machten das vor einer Konsole sitzend, die
mit dem Zentralrechner verbunden war.

Betriebssystem war UNIX, und auf dem Rechner konnte
man in der ersten objektorientierten Programmiersprache (SIMULA, kommt aus
Norwegen) programmieren.

Heute sind die Rechner so leistungsfähig, dass ich für meine bescheidenen Probleme
nur in Ausnahmefällen auf externe Rechenleistung angewiesen bin.
Im neuesten Notebook der Fa. Aquado (Sitz in Franken, liefert leider nicht
an privat) ist beispielsweise ein i9-Prozessor verbaut (normalerweise für
Notebooks wegen der hohen Wärmeentwicklung tabu), der so um die 120 GigaFlops
schaffen soll. Da braucht man als Privatmann keine Rechenfarm, sofern man nicht
gerade Bitcoins schürft.

Grüße B.

>
> Jens

Ulrich Diez

unread,
Dec 5, 2021, 3:24:08 PM12/5/21
to
Brigitta Jennen schrieb:

> Ein Bauer stellt beim Zählen seiner Tiere fest, dass die Anzahlen seiner
> Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind. Außerdem
> fällt ihm auf, dass die Anzahl der Kühe multipliziert mit der Summe aus
> Anzahl der Kühe und Anzahl der Pferde die Anzahl der Hühner um
> 120 übersteigt.
> Wie viele Kühe, Pferde und Hühner befinden sich auf seinem Hof?
[...]
> (5) Und somit als Lösungstripel (K, P, H) = (11, 2, 23)
[...]
> Wie kann man nachweisen, dass dies das einzige Lösungstripel ist?

Salopp:

Indem man durch Anwendung von im Kalkül enthaltenen Schlussweisen
zeigt, dass alle anderen Fälle (K, P, H) im Widerspruch zum Kalkül stehen,
weil sie auf die Existenz von Elementen schliessen lassen, die im
Kalkül nicht enthalten sind:

Sei k die Anzahl der Kühe.
Sei p die Anzahl der Pferde.
Sei h die Anzahl der Hühner.

Für k, p und h gelten folgende Bedingungen:

k <> p und k <> h und p <> h und
{k, p, h} ist echte Teilmenge der Menge der positiven Primzahlen,
-> maximal ein Element von {k, p, h} hat den Wert 2, und
k*(k+p)=h+120 <-> k^2+kp-h=120.

Annahmen über Paritäten:

Fall: k gerade, p gerade, h gerade:
->
Widerspruch zum Kalkül:
{k,p,h} stellt eine echte Teilmenge der Menge der positiven Primzahlen
dar, die drei verschiedene gerade Zahlen enthält. Eine solche ist im
Kalkül nicht enthalten.

Fall: k ungerade, p gerade, h gerade:
->
Widerspruch zum Kalkül:
{k,p,h} stellt eine echte Teilmenge der Menge der positiven Primzahlen
dar, die zwei verschiedene gerade Zahlen enthält. Eine solche ist im
Kalkül nicht enthalten.

Fall: k gerade, p ungerade, h gerade:
->
Widerspruch zum Kalkül:
{k,p,h} stellt eine echte Teilmenge der Menge der positiven Primzahlen
dar, die zwei verschiedene gerade Zahlen enthält. Eine solche ist im
Kalkül nicht enthalten.

Fall: k ungerade, p ungerade, h gerade:
->
Dies sei der näher zu betrachtende Fall 1.

Fall: k gerade, p gerade, h ungerade:
->
Widerspruch zum Kalkül:
{k,p,h} stellt eine echte Teilmenge der Menge der positiven Primzahlen
dar, die zwei verschiedene gerade Zahlen enthält. Eine solche ist im
Kalkül nicht enthalten.

Fall: k ungerade, p gerade, h ungerade:
->
Dies sei der näher zu betrachtende Fall 2.

Fall: k gerade, p ungerade, h ungerade:
->
Widerspruch zum Kalkül:
Die linke Seite der Gleichung k^2+kp-h=120 hat eine andere
Parität als die rechte Seite dieser Gleichung.
Bzw: Die Zahl 120 ist sowohl gerade als auch ungerade.
Eine solche Zahl ist im Kalkül nicht enthalten.

Fall: k ungerade, p ungerade, h ungerade:
->
Widerspruch zum Kalkül:
Die linke Seite der Gleichung k^2+kp-h=120 hat eine andere
Parität als die rechte Seite dieser Gleichung.
Bzw: Die Zahl 120 ist sowohl gerade als auch ungerade.
Eine solche Zahl ist im Kalkül nicht enthalten.


Betrachtung des näher zu betrachtenden Falls 1:
k ungerade, p ungerade, h gerade:
-----------------------------------------------

h gerade und h prim -> h=2 ->
k^2+kp-h=120 <->
k^2+kp=122 ->
k^2 < 122 ->
k <= 11
Probe, ob Elemente k <=11; k prim und positiv und ungerade existieren,
für die sich keine Widersprüche zum Kalkül ergeben:

"Elemente k <=11; k prim und positiv und ungerade" -> k in {3,5,7,11}

Fall k=3: k^2+kp=122 <-> 3^2+3p=122 <-> p = 37+2/3 -> p nicht prim
->
Widerspruch zum Kalkül:
Gemäß den Bedingungen ist p prim.
Gemäß der Schlussfolgerung ist p nicht prim.
Es liegt eine Zahl vor, die sowohl prim als auch nicht prim ist.
Eine solche Zahl ist im Kalkül nicht enthalten.

Fall k=5: k^2+kp=122 <-> 5^2+5p=122 <-> p = 19+2/5 -> p nicht prim
->
Widerspruch zum Kalkül:
Gemäß den Bedingungen ist p prim.
Gemäß der Schlussfolgerung ist p nicht prim.
Es liegt eine Zahl vor, die sowohl prim als auch nicht prim ist.
Eine solche Zahl ist im Kalkül nicht enthalten.

Fall k=7: k^2+kp=122 <-> 7^2+7p=122 <-> p = 10+3/7 -> p nicht prim
->
Widerspruch zum Kalkül:
Gemäß den Bedingungen ist p prim.
Gemäß der Schlussfolgerung ist p nicht prim.
Es liegt eine Zahl vor, die sowohl prim als auch nicht prim ist.
Eine solche Zahl ist im Kalkül nicht enthalten.

Fall k=11: k^2+kp=122 <-> 11^2+11p=122 <-> p = 1/11 -> p nicht prim
->
Widerspruch zum Kalkül:
Gemäß den Bedingungen ist p prim.
Gemäß der Schlussfolgerung ist p nicht prim.
Es liegt eine Zahl vor, die sowohl prim als auch nicht prim ist.
Eine solche Zahl ist im Kalkül nicht enthalten.


Betrachtung des näher zu betrachtenden Falls 2:
k ungerade, p gerade, h ungerade:
-----------------------------------------------
p gerade und p prim -> p=2 ->
k^2+kp-h=120 <->
k^2+2k-120=h <->
(k+12)(k-10)=h

Da h prim und positiv ist, ist entweder ((k+12)=1 und (k-10)>1)
bzw (k=-11 und k>11), was einen Widerspruch zum Kalkül darstellt,
bzw auf die Existenz einer Zahl k schliessen lässt, die sowohl kleiner
als auch größer als 11 und nicht im Kalkül enthalten ist, oder
((k-10)=1 und (k+12)>1) bzw (k=11 und k>-11), was keinen Widerspruch
darstellt.

Betrachtung des näher zu betrachtenden Fall 2 mit k=11 ergibt:

(k+12)(k-10)=h=(11+12)(11-10)=23

Der Fall p=2, k=11, h=23 erfüllt als einziger alle für k, p und h
geltenden Bedingungen ohne auf Widersprüche zum Kalkül zu
führen bzw ohne auf die Existenz von Elementen schliessen
zu lassen, die im Kalkül nicht enthalten sind.

Alle anderen Fälle stehen im Widerspruch zu diesen Bedingungen
bzw führen auf Widersprüche zum Kalkül bzw lassen auf die
Existenz von Elementen schliessen, die im Kalkül nicht
enthalten sind.

Ulrich

Rainer Rosenthal

unread,
Dec 5, 2021, 4:21:20 PM12/5/21
to
Am 03.12.2021 um 13:25 schrieb Brigitta Jennen:
>
> Ich bleibe mal noch bei der 51-er-Variante der Aufgabe.
>
> Nachfolgend die (vorläufige) Anzahl der Lösungstripel, die das Such-Programm
> unter Excel-VBA mit Rainers Algorithmus (leicht modifiziert) ausgeworfen hat:
>
> Primzahlbereich......Anzahl Primzahlen......Anzahl Lösungstripel...Rechenzeit Notebook Rechenzeit Workstation
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Primzahlen bis 10^1: ........... 4 ........ ...........0 .................... ..............0 ..................... ................0
> Primzahlen bis 10^2: .......... 25 ................10 ................................... 0.01953125 s ................ 0
> Primzahlen bis 10^3: ......... 168 .............. 71 ................................... 0.03515625 s ................ 0
> Primzahlen bis 10^4: ....... 1 229 ........... 443 ................................... 0.18750000 s ................ 0
> Primzahlen bis 10^5: ....... 9 592 ........ 3 154 ................................. 10.68359375 s ................ 0.001
> Primzahlen bis 10^6: ..... 78 498 ...... 23 415 .............................. 748.76171875 s ................. 11.92
> Primzahlen bis 10^7: ..... 664 579 .(under construction)
> Primzahlen bis 10^8: ... 5 761 455 (under construction)
> Primzahlen bis 10^9: .................... (under construction)
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Die wichtige Frage, die sich mir stellt:
> Sind das wirklich alle Lösungstripel oder wurden wegen ungenauer Programmierung
> womöglich einige übersehen? Das kann ich im Moment noch nicht genau abschätzen.
>
Es sind Tripel dabei, in denen nur zwei verschiedene Primzahlen
vorkommen. Ich habe die Anzahl der Lösungstripel nach unten korrigiert.
Und besonders stolz bin ich auf die nach 28 Stunden gefundenen 162429
Lösungen zu "Primzahlen bis 10^7".
Hier meine Tabelle:
#
# Anzahl Anzahl ______Rechenzeit_______
# Primzahlen Lösungen BJ Workst. Maple
# -----------------------------------------------------------------
# Prim bis 10^1: 4 0 0 0 0
# Prim bis 10^2: 25 8 0 0 0
# Prim bis 10^3: 168 71 0 0 0
# Prim bis 10^4: 1229 443 0 0 0
# Prim bis 10^5: 9592 3154 11s 0 0
# Prim bis 10^6: 78498 23415 749s 12s 11s
# Prim bis 10^7: 664579 162429 28h
# Prim bis 10^8: 5761455
# Prim bis 10^9:
# -----------------------------------------------------------------

Liebe Grüße,
Rainer

Ulrich Diez

unread,
Dec 5, 2021, 5:49:13 PM12/5/21
to
Rainer Rosenthal schrieb am Dienstag, 30. November 2021:

> Zum Beispiel war ich einen Moment lang verblüfft, warum K = 3 niemals
> auftritt. (Ich verrate es nicht, wäre ja schade.)

Für K, P und H gelten folgende Bedingungen:

K <> P und K <> H und P <> H und
{K, P, H} ist echte Teilmenge der Menge der positiven Primzahlen,
-> maximal ein Element von {K, P, H} hat den Wert 2, und
K*(K+P)=H+51

Unter der Annahme K=3 ist die linke Seite der Gleichung durch 3 teilbar
und somit auch die rechte Seite der Gleichung, was wiederum nur möglich ist,
wenn H durch 3 teilbar ist, was auf die Existenz einer von 3 verschiedenen
Primzahl H führt, die durch 3 teilbar ist.
Die Annnahme der Existenz einer solchen Primzahl steht im Widerspruch
zu Kalkülen, die solche Primzahlen nicht enthalten. :-)

Abgesehen davon erinnert mich das ganze Problem an
"Über die Lösung der Unbestimmten Probleme Zweiten Grades"
von Joseph Louis Lagrange, 1768.
Ich hatte davon mal eine von Eugen Netto angefertigte Übersetzung
in der Hand, die im Jahr 1904 in Leipzig erschienen ist.

Und an Carl Ludwig Siegel. Von dem standen vier Bände in der UB
mit gesammelten Abhandlungen.
Da habe ich früher gerne drin gelesen, aber das geht jetzt nicht mehr.

Auch wenn ich nicht viel beitragen kann, möchte ich mich für die
Gelegenheit bedanken, mich an bessere Zeiten zu erinnern.

Mit freundlichem Gruß

Ulrich

Brigitta Jennen

unread,
Dec 6, 2021, 5:02:36 AM12/6/21
to
Rainer Rosenthal schrieb am Sonntag, 5. Dezember 2021 um 22:21:20 UTC+1:

> Es sind Tripel dabei, in denen nur zwei verschiedene Primzahlen
> vorkommen. Ich habe die Anzahl der Lösungstripel nach unten korrigiert.
> Und besonders stolz bin ich auf die nach 28 Stunden gefundenen 162429
> Lösungen zu "Primzahlen bis 10^7".
> Hier meine Tabelle:
> #
> # Anzahl Anzahl ______Rechenzeit_______
> # Primzahlen Lösungen BJ Workst. Maple
> # -----------------------------------------------------------------
> # Prim bis 10^1: 4 0 0 0 0
> # Prim bis 10^2: 25 8 0 0 0
> # Prim bis 10^3: 168 71 0 0 0
> # Prim bis 10^4: 1229 443 0 0 0
> # Prim bis 10^5: 9592 3154 11s 0 0
> # Prim bis 10^6: 78498 23415 749s 12s 11s
> # Prim bis 10^7: 664579 162429 28h
> # Prim bis 10^8: 5761455
> # Prim bis 10^9:
> # -----------------------------------------------------------------

Hallo Rainer,
die Zahlen für

10^4 ---------- 443 Tripel
10^5 ---- ----3 154 Tripel
10^6 ---- 23 415 Tripel
10^7 ---- 162 429 Tripel

kann ich (nach längerer Korrektur) bestätigen.
(Merkwürdigerweise erhalte ich für 10^3 nicht 71 Tripel wie Du,
sondern nur 68. Hier muss ich noch nachsehen, wo sich da der
Bug eingeschlichen hat). Aber sonst passt's.

LG B.

> Liebe Grüße,
> Rainer

Brigitta Jennen

unread,
Dec 6, 2021, 5:07:00 AM12/6/21
to
Ulrich Diez schrieb am Sonntag, 5. Dezember 2021 um 23:49:13 UTC+1:
...

> Abgesehen davon erinnert mich das ganze Problem an
> "Über die Lösung der Unbestimmten Probleme Zweiten Grades"
> von Joseph Louis Lagrange, 1768.
> Ich hatte davon mal eine von Eugen Netto angefertigte Übersetzung
> in der Hand, die im Jahr 1904 in Leipzig erschienen ist.
>
> Und an Carl Ludwig Siegel. Von dem standen vier Bände in der UB
> mit gesammelten Abhandlungen.

Oh - vielen Dank für diese Querverweise.
Finde ich sehr interessant. Da werd ich mal versuchen, einiges nachzulesen.
Freundliche Grüße
Brigitta

>
> Mit freundlichem Gruß
>
> Ulrich

Ulrich Diez

unread,
Dec 6, 2021, 10:41:56 AM12/6/21
to
Brigitta Jennen schrieb:

> Oh - vielen Dank für diese Querverweise.
> Finde ich sehr interessant. Da werd ich mal versuchen, einiges nachzulesen.

Viel Spaß. :-)

Vorwarnung: Die Gesammelten Abhandlungen von Carl Ludwig Siegel sind
kein zusammenhängendes einführendes Lehrwerk.

Carl Ludwig Siegel war einer der bedeutendsten Mathematiker des 20. Jahrhunderts
und ein Mensch, der für seine Überzeugungen einstand.
Zum Beispiel wurde er 1917 in eine psychiatrische Anstalt eingewiesen, weil
er den Wehrdienst verweigerte. (<https://de.wikipedia.org/wiki/Carl_Ludwig_Siegel>)

Titel: Carl Ludwig Siegel - Gesammelte Abhandlungen.
Herausgeber: Komaravolu Chandrasekharan, Hans Maaß
Autor: Carl Ludwig Siegel
Hardcover:
Band 1-3: Deutschland: Springer, 1966
(1966 gabs noch keine ISBN. Standard Book Numbers (SBN), Vorläufer der ISBN,
wurden 1966 vom britische Buchhandelshaus WHSmith eingeführt.)
Band 4: Deutschland: Springer, 1979, ISBN-10 ‏ : ‎ 3540093745
Softcover:
Band 1: Gesammelte Abhandlungen I, ISBN: 978-3-662-48889-8,
SpringerLink: <https://link.springer.com/book/9783662488898>
Band 2: Gesammelte Abhandlungen II, ISBN: 978-3-662-48904-8,
SpringerLink: <https://link.springer.com/book/9783662489048>
Band 3: Gesammelte Abhandlungen III, ISBN: 978-3-662-48942-0,
SpringerLink: <https://link.springer.com/book/9783662489420>
Band 4: Gesammelte Abhandlungen VI, ISBN: 978-3-662-48945-1,
SpringerLink: <https://link.springer.com/book/9783662489451>

Die vier Hardcover-Bände gibts zB antiquarisch bei viaLibri:
<https://www.vialibri.net/years/books/98100259/9999-siegel-c-l-chandrasekharan-k-maass-carl-ludwig-siegel-gesammelte-abhandlungen-4>

Dort wird Carl Ludwig Siegel "nach Klein und Hilbert der letzte
mathematische Universalist der Göttinger Schule" genannt.

ZB bei der Universitätsbücherei Tübingen sind alle vier Bände
bestellbar: <https://rds-tue.ibs-bw.de/opac/RDSIndexrecord/1073282856>


-----------------------------------------------------------------

Eins meiner Lieblingsbücher für den Einstieg in die Zahlentheorie:

Handbuch der elementaren Zahlentheorie:
Mit über 1000 Übungsaufgaben und ihren Lösungen (Berliner Studienreihe
zur Mathematik) von David M Burton (Autor), Heinz Dalkowski (Autor und
Übersetzer).
Heldermann-Verlag,
Gedrucktes Buch: 2005 (Berliner Studienreihe zur Mathematik -- Band 12),
ISBN-10: 3885381125, ISBN-13: 9783885381129
E-Book/pdf: 2003, ISBN-13 9783885387022
Amazon-URL: <https://www.amazon.de/Handbuch-elementaren-Zahlentheorie-%C3%9Cbungsaufgaben-Studienreihe/dp/3885381125>
Verlags-URL zum E-Book: <https://www.heldermann.de/Ebooks/ebook2.htm>
Verlags-URL zum gedruckten Buch: <https://www.heldermann.de/BSM/BSM12/bsm12.htm>
Info im Portal der Deutschen Nationalbibliothek/Inhaltsverzeichnis: <https://d-nb.info/977763390/04>
Katalog der UB Heidelberg: <https://katalog.ub.uni-heidelberg.de/cgi-bin/titel.cgi?katkey=66715445>


Was ich zum Einstieg früher auch gerne gelesen habe, waren die kleinen
alten Bändchen der Göschen-Sammlung:

Sammlung Göschen Band 1131 - Arnold Scholz/Bruno Schoeneberg:
Einführung in die Zahlentheorie
de Gruyter, 1961 (vormals G.J. Göschen'sche Verlagshandlung, J. Guttentag
Verlagsbuchhandlung, Georg Reimer, Karl J. Trübner, Veit & Comp.)
Inhalt: Teilbarkeitseigenschaften, Kongruenzen und Restklassen,
Quadratische Reste, Quadratische Formen
Amazon-URL zu einer älteren Ausgabe:
<https://www.amazon.de/Einf%C3%BChrung-Zahlentheorie-Sammlung-G%C3%B6schen-Band/dp/3111016102>
, gibts gebraucht ab 6,90 Euro.
Bestellbar/ausleihbar in der UB Tübingen: <https://rds-tue.ibs-bw.de/opac/RDSIndex/Search?lookfor=kid%3A1116853531>

Mit freundlichem Gruß

Ulrich

Rainer Rosenthal

unread,
Dec 6, 2021, 10:55:49 AM12/6/21
to
Am 06.12.2021 um 11:02 schrieb Brigitta Jennen:
> die Zahlen für
>
> 10^4 ---------- 443 Tripel
> 10^5 ---- ----3 154 Tripel
> 10^6 ---- 23 415 Tripel
> 10^7 ---- 162 429 Tripel
>
> kann ich (nach längerer Korrektur) bestätigen.
> (Merkwürdigerweise erhalte ich für 10^3 nicht 71 Tripel wie Du,
> sondern nur 68. Hier muss ich noch nachsehen, wo sich da der
> Bug eingeschlichen hat). Aber sonst passt's.
>

Hallo Brigitta,

nicht nur die 71 ist falsch (68 ist korrekt), sondern danach waren auch
3154 und 23415 falsch. Die müssen 3142 und 23382 heißen:

#
# Anzahl Anzahl ______Rechenzeit_______
# Primzahlen Lösungen BJ Workst. Maple
# -----------------------------------------------------------------
# Prim bis 10^1: 4 0 0 0 0
# Prim bis 10^2: 25 8 0 0 0
# Prim bis 10^3: 168 68 0 0 0
# Prim bis 10^4: 1229 443 0 0 0
# Prim bis 10^5: 9592 3142 11s 0 0
# Prim bis 10^6: 78498 23382 749s 12s 11s
# Prim bis 10^7: 664579 162429 ____ ___ 28h
# Prim bis 10^8: 5761455
# Prim bis 10^9:
# -----------------------------------------------------------------

Ich bin jetzt dran, eine eigentlich naheliegende Beschleunigung einzubauen.
Auf der Suche nach K und P zu gegebenem H und U, für die die Gleichung

K(K+P) = H+U

gilt, muss ich für K nicht alle Primzahlen durchprobieren, sondern es
genügt, die Teiler K von (H+U) zu prüfen, obe es ein passendes P gibt.
Und das ist der einfache Test, ob P = (H+U)/K - K eine Primzahl liefert.

Was sich logisch anhört, ist in der Praxis aber auf Anhieb nicht
erfolgreich gewesen. Die Maple-Funktion ifactors(H+U) liefert mir zwar
die Primfaktoren, aber sie kostet so viel Zeit, dass die alte Technik
deutlich schneller ist. Habe da aber schon eine gute Idee.

Gruß,
Rainer

Jens Kallup

unread,
Dec 7, 2021, 2:46:47 AM12/7/21
to
Am 06.12.2021 um 16:55 schrieb Rainer Rosenthal:
> Was sich logisch anhört, ist in der Praxis aber auf Anhieb nicht
> erfolgreich gewesen. Die Maple-Funktion ifactors(H+U) liefert mir zwar
> die Primfaktoren, aber sie kostet so viel Zeit, dass die alte Technik
> deutlich schneller ist. Habe da aber schon eine gute Idee.

ich stehe da gerne zur Verfügung,
wenns um Kopplung geht ...

Jens

Rainer Rosenthal

unread,
Dec 7, 2021, 2:55:46 PM12/7/21
to
Am 06.12.2021 um 16:55 schrieb Rainer Rosenthal:
>
> [Übersichtstabelle für verschiedene Primzahlbereiche]
>
> Ich bin jetzt dran, eine eigentlich naheliegende Beschleunigung einzubauen.
> Auf der Suche nach K und P zu gegebenem H und U, für die die Gleichung
>
> K(K+P) = H+U
>
> gilt, muss ich für K nicht alle Primzahlen durchprobieren, sondern es
> genügt, die Teiler K von (H+U) zu prüfen, obe es ein passendes P gibt.
> Und das ist der einfache Test, ob P = (H+U)/K - K eine Primzahl liefert.
>
> Was sich logisch anhört, ist in der Praxis aber auf Anhieb nicht
> erfolgreich gewesen. Die Maple-Funktion ifactors(H+U) liefert mir zwar
> die Primfaktoren, aber sie kostet so viel Zeit, dass die alte Technik
> deutlich schneller ist. Habe da aber schon eine gute Idee.
>
Die gute Idee ist die, die Du ja bereits verwendest:
Sieb des Eratosthenes.
Ich verwende eine Liste E der Länge L = 10^n + U, um alle H + U
untersuchen zu können mit H <= 10^n, n > 1 (*)

Modifiziertes Eratosthenes-Sieb (E-Sieb)
========================================
Anfangs ist E[1] = 1 und alle anderen E[i] sind 0.
Wie beim Siebverfahren starte ich mit j = 2 und modifiziere die
Positionen j, j+j, j+j+j, ...
Statt aber zu "streichen", trage ich an diesen Positionen die Zahl j
ein, falls nicht bereits ein anderer Wert als 0 dort steht.
Nach j = 2 suche ich die nächste noch unveränderte Position, und das ist
j = 3, weil bisher nur alle durch 2 teilbaren Positionen verändert
worden sind. Auch hier werden j, j+j, j+j+j, ... in der beschriebenen
Weise verändert: 0 wird durch j ersetzt, Zahlen ungleich 0 bleiben
stehen. Beispiel: an Position 6 bleibt E[6] = 2 stehen.

Verwendung des E-Siebs
======================
In diesem modifizierten E-Sieb haben wir schließlich an jeder Position i
den kleinsten Primteiler von i stehen. Primzahlen i sind dadurch
ausgezeichnet, dass E[i] = i ist.
Das Interessante aber ist, dass mir das E-Sieb die Maple-Funktion
'ifactors' ersetzt! Will ich irgendeine Zahl H+U = k mit 2 <= k <= L in
ihre Primfaktoren zerlegen, dann finde ich k_1 = E[k]. Die anderen
Primteiler stecken in c_1 = E[k]/k_1, d.h. mit k_2 = E[c_1] bekomme ich
einen weiteren (nicht notwendig verschiedenen) Primteiler. Damit erhalte
ich die Primfaktoren K = k_1, k_2, usw. von H+U und prüfe dann nur noch,
ob P = (H+U)/K - K eine Primzahl ist. Und dabei hilft die E-Liste eben
auch: ich muss nur prüfen, ob E[P] = P ist.

Ergebnisse
==========
Das klingt nicht nur recht gut und einfach, sondern es ist offenbar auch
gut. Die Ergebnisse für 10^2, 10^3, 10^4, 10^5, 10^6 waren allesamt in
knapp über 3 Minuten fertig! Natürlich bin ich jetzt sehr gespannt auf
die Laufzeit für 10^7.
Erst wollte ich es nicht recht glauben, aber diese beschleunigte Version
des "Bauern-Algoritmus" hat gezeigt, dass die Lösungsanzahlen nochmal
geändert werden müssen! Kein Witz, ich habe tatsächlich gesehen, welche
Nicht-Lösungen sich da reingemogelt hatten. Die neue Liste ist:

#
# Anzahl ______Rechenzeit_______
# Lösungen BJ Workst. Maple
# -----------------------------------------------------------------
# Prim bis 10^1: 0 0s 0s 0
# Prim bis 10^2: 8 0s 0s 0
# Prim bis 10^3: 68 0s 0s 0
# Prim bis 10^4: 437 0s 0s 0s
# Prim bis 10^5: 3142 11s 0s 3s
# Prim bis 10^6: 23382 749s 12s 53s
# Prim bis 10^7: 162429 28h noch :-)
# -----------------------------------------------------------------

Gruß,
Rainer

(*) Betrachtet man alle Lösungstripel [K,P,H] zu U = 51 mit K, P, H <
10^n, dann gilt K, P, H <= Hmax, wenn Hmax das größte H in diesen
Tripeln ist. Allerdings nur unter der Voraussetzung n > 1.


Ralf Goertz

unread,
Dec 8, 2021, 5:59:10 AM12/8/21
to
Am Tue, 7 Dec 2021 20:55:47 +0100
schrieb Rainer Rosenthal <r.ros...@web.de>:
Ich habe jetzt auch mal einen Test gestartet und war erst einmal
verwirrt, weil ich zum Teil andere Ergebnisse bei den Primzahlen bis
10^6 hatte. Aber das lag daran, dass ich nicht diese korrigierte Liste
hatte sondern die mit den teilweise falschen Einträgen aus früheren
Posts. Für 10^7 habe ich 181828 Lösungen. Ist es richtig, dass du noch
rechnest? Mein Programm (in C++ geschrieben) braucht nur 1,5 Sekunden.
Dazu habe ich mir ein array mit den Primzahlen bis 10^7 von pari
ausgeben lassen und direkt in mein Programm übernommen, also kein
sieben. Dann zwei Schleifen (für K und P) über dieses array und Test ob
H=K*(K+P)-U ebenfalls im array ist und K, P und H paarweise verschieden,
falls ja Ausgabe. Ich habe mit long long int gerechnet, das sollte
reichen, denn da ist der Maximalwert 2^63-1=9223372036854775807, während
K*(K+P) höchstens 199999640000162 werden kann. 10^8 mache ich vielleicht
auch noch, aber da muss erst wieder pari bitten…

Rainer Rosenthal

unread,
Dec 8, 2021, 7:12:07 AM12/8/21
to
Am 08.12.2021 um 11:59 schrieb Ralf Goertz:

> Für 10^7 habe ich 181828 Lösungen. Ist es richtig, dass du noch
> rechnest?

Hallo Ralf,

schön, dass Du mitrechnest. Deine 181828 Lösungen habe ich gestern spät
abends in einer halben Stunde rechnen können, aber ich habe mich nicht
getraut, das herauszuposaunen, weil ich erst rauskriegen wollte, ob mein
altes Ergebnis 162429 Mist war oder das neue (oder beide :-) ).
Damit habe ich heute Vormittag begonnen und habe die neue Lösung
[1223,1433,3248237] nicht unter den alten entdecken können. Das weckt
natürlich die Neugier, wie ich es schaffen konnte, diese Lösung zu
übersehen. Daran rechne ich tatsächlich gerade.

> Mein Programm (in C++ geschrieben) braucht nur 1,5 Sekunden.

Gratulation!
Es ist sehr unwahrscheinlich, dass wir beide das gleiche falsche
Ergebnis gefunden haben, die Chancen stehen gut, dass es korrekt ist.

> Dazu habe ich mir ein array mit den Primzahlen bis 10^7 von pari
> ausgeben lassen und direkt in mein Programm übernommen, also kein
> sieben. Dann zwei Schleifen (für K und P) ...

Jup, heute früh beim Duschen ist mir auch klar geworden, dass ich mit
meiner Entscheidung, von H auszugehen, den komplizierten Weg gewählt
hatte. Das zwingt mich zum Faktorisieren, und da habe ich mir bereits
unnötige Arbeit aufgehalst. Mit dem E-Sieb habe ich die unnötige Arbeit
erleichtert und beschleunigt :-(

Ich habe die Angewohnheit, kleine Selbstgespräche in meine Programme
einzufügen. Das von heute früh war:

#
# 08.11.21 Lauf mit Bauer7() hat viel zu viele(?) Lösungen für 10^7
# gebracht. Da muss ich schauen, ob der Fehler jetzt oder
# früher gemacht wurde.
# Die zweidimensionale (H,K)-Suche will ich durch (K,P)-Suche
# ersetzen. Dann entfällt das teure Faktorisieren.
# Auch der Original-Beweis für U = 120 wird damit sicher
# einfacher.
#

Dann habe ich mich zuerst daran gemacht, den Beweis für U = 120 noch
einmal zu formulieren. Das ist die Aufgabe im Original-Posting von Brigitta.

Selbstgespräch Nummer 2:

#
# Nochmal für dsm:
#
# Behauptung:
# Sind K, P, H paarweise verschiedene Primzahlen mit K(K+P) = H + 120,
# dann ist K = 11, P = 2 und H = 23.
#
# Beweis:
# H kann nicht 2 sein, weil sonst K(K+P) = 2*61 wäre. 61 ist prim,
# d.h. es muss K = 2 oder K+P = 2 sein. Der Fall K + P = 2 ist
# unmöglich.
# Also ist K = 2. Das bedeutet H = K und ist damit nicht erlaubt.
# Weil H nicht 2 ist, ist H + 120 ungerade, d.h. K(K+P) ist ungerade.
# Folglich sind K und K+P ungerade, d.h. P = 2. K(K+2) = H + 120
# bedeutet (K+1)^2 - 1 = H + 120, also (K+1)^2 - 121 = H.
# Die linke Seite ist wegen 121 = 11^2 und a^2 - b^2 = (a+b)(a-b)
# gleich (K+1+11)(K+1-11). Das ist gleich der Primzahl H. d.h.
# Faktor K+1-11 muss gleich 1 sein.
# Damit ist K = 11 und H = K+1+11 = 23.
#
# Bevor ich nun aber die Suche umkremple auf (K,P)-Suche, will ich die
# Diskrepanz bei 10^7 klären.
#

Ende des Selbstgesprächs, Rückkehr in Dialogmodus :-)

Herzliche Grüße,
Rainer

Rainer Rosenthal

unread,
Dec 8, 2021, 7:54:29 AM12/8/21
to
Am 08.12.2021 um 11:59 schrieb Ralf Goertz:

> Dazu habe ich mir ein array mit den Primzahlen bis 10^7 von pari
> ausgeben lassen und direkt in mein Programm übernommen,

Warum rechnest Du nicht gleich in PARI/GP?
Ich habe wenig Übung darin und komme mit dem Eingabeformat immer
durcheinander, weil ich nur ein Konsolenfenster habe, in das ich die
Programme reinkopieren muss. Das nervt.

Zu meinem falschen Ergebnis für 10^7:
Am Algorithmus liegt es nicht, habe ich gesehen. Es wird also wohl eine
Folge davon gewesen sein, dass ich nach knapp 8 Stunden Rechenzeit mal
sehen wollte, wie weit das Programm gekommen war. Und dann werde ich
beim Wiederaufsetzen für die restlichen 20 Stunden Murks gemacht haben.
Schwamm drüber!

Gruß,
Rainer

Ralf Goertz

unread,
Dec 8, 2021, 9:42:18 AM12/8/21
to
Am Wed, 8 Dec 2021 13:54:28 +0100
schrieb Rainer Rosenthal <r.ros...@web.de>:

> Am 08.12.2021 um 11:59 schrieb Ralf Goertz:
>
> > Dazu habe ich mir ein array mit den Primzahlen bis 10^7 von pari
> > ausgeben lassen und direkt in mein Programm übernommen,
>
> Warum rechnest Du nicht gleich in PARI/GP?
> Ich habe wenig Übung darin und komme mit dem Eingabeformat immer
> durcheinander, weil ich nur ein Konsolenfenster habe, in das ich die
> Programme reinkopieren muss. Das nervt.

[Du kannst doch das Programm extern schreiben und es dann mit
read("programm.gp") laden.]

Dafür gibt's in diesem Fall mehrere Gründe, erstens finde ich die
Sprache schon auch ein wenig gewöhnungsbedürftig, zweitens fühle ich
mich mit C++ sehr wohl und drittens (in diesem Fall der Hauptgrund)
fürchtete ich (vielleicht zu Unrecht), dass es sehr langsam sein würde,
weil Maple ja offenbar auch nicht so schnell ist. Die Abfrage, ob H prim
wäre, hätte ich wohl in Pari mit isprime(H) gemacht:

? ?isprime isprime(x,{flag=0}): true(1) if x is a (proven) prime number,
false(0) if not. If flag is 0 or omitted, use a combination of
algorithms. If flag is 1, the primality is certified by the
Pocklington-Lehmer Test. If flag is 2, the primality is certified using
the APRCL test. If flag is 3, use ECPP.

Das sieht nicht schnell aus. Und wenn ich mir ein Programm ein zu eins
wie das C++-Programm geschrieben hätte, dann hätte ich die Primzahlen
vorher in ein array (ein Set?) gespeichert und dann H darin gesucht.
Das sind aber 664579 Primzahlen (<10^7). Ich weiß im Moment gar nicht,
wie ich Pari in Listen oder Sets oder Vektoren suchen muss. Bei C++
benutze ich std::set<int>, was eine sehr schnelle Suche nach einem
Element mitbringt, denn set ist eine geordnetet Menge und ein
set.find(n) nutzt binäre Suche. (std::unordered_set<> wäre vielleicht
noch schneller, aber das ist nicht geordnet, das brauche ich aber, weil
ich die zweite Schleife (die für P) abbreche, wenn H>10^7 wird.)

Verstehe mich nicht flasch, ich mag Pari, meine geliebten
Differenzmengen*) lassen sich damit sehr schnell berechnen (schneller
als mit jedem anderen CAS, das ich probiert habe, "Gap" ist zum Beispiel
schnarchlangsam). Wenn ich Muße hab, probiere ich es vielleicht nochmal
in Pari.

*)
diffset=m-> {
if (type(m)!="t_INT" || m<2 ,error(concat(m," is not an integer≥2")));
if (omega(m)>1,error(concat(m," is not a prime power")));
my(fc=factorint(m));
my(p=fc[1,1]);
my(n=fc[1,2]);
my(ff=(ffinit(p,3*n))); \\ field F_{p^{3n}}
my(lambda=ffprimroot(ffgen(ff))); \\ Generator for field F_{p^{3n}}
\\print(ff);
\\print(lambda);
my(v=p^(2*n)+p^n+1);
my(lambda_sf=lambda^v); \\ Generator for subfield F_{p^n}
my(s=Set([]));
my(elem=lambda);
for(i=0,fforder(lambda_sf),
for(j=0,fforder(lambda_sf),
if (i+j==0,next);
elem=if(i==0,0,(lambda_sf^i)*lambda)+if(j==0,0,lambda_sf^j);
\\elem=(lambda_sf^i)*lambda+lambda_sf^j;
s=setunion(s,Set([fflog(elem,lambda)]%v));
if(length(s)==m+1,break(2));
)
);
return(s);
}

\\ ? diffset(4)
\\%2 = [0, 1, 6, 8, 18]

Rainer Rosenthal

unread,
Dec 8, 2021, 10:10:14 AM12/8/21
to
Am 08.12.2021 um 15:42 schrieb Ralf Goertz:
>
> [Du kannst doch das Programm extern schreiben und es dann mit
> read("programm.gp") laden.]
>
Danke, werde ich probieren.

> ... weil Maple ja offenbar auch nicht so schnell ist.
> Die Abfrage, ob H prim wäre, hätte ich wohl in Pari mit isprime(H) gemacht:
>
so heißt das auch in Maple. Am 29.11. hatte ich ein bisschen darüber
erzählt:
Eine gegeben Zahl z liefert beim Aufruf von isprime(z) den Wert true
oder false.
Mit nextprime(z) bekommt man die nächste Primzahl.
Mit ithprime(k) bekommt man die k-te Primzahl, ithprime(1) = 2.

PARI ist sehr schnell.
>
> Verstehe mich nicht flasch, ich mag Pari, meine geliebten
> Differenzmengen
> *)
> diffset=m-> {
> ...
> \\%2 = [0, 1, 6, 8, 18]

Hmm, diese Dinger sind mir doch vor nicht allzulanger Zeit mal begegnet.
Gegoogelt lande ich bei StackExchenge[1], und das dort angegebene
Programm ähnelt Deinem wirklich sehr - gleicher Autor?
Dort steht am Schluss allerding %6 statt %2, und es ist noch eine
Alternative angegeben:

...
? diffset(4)
%6 = [0, 1, 6, 8, 18] \\possibly another answer: %7 = [0, 1, 4, 14, 16]

Ach ja, jetzt erinnere ich mich wieder. Mich hatten im OEIS die
unsinnigen Offsets bei den "cyclic difference sets" gestört, als ich
Ende Juli aus Gott weiß was für einem Grund da meine Nase reingesteckt
hatte. https://oeis.org/A095025 mit dem Beispiel
a(5) = 2 because there are two cyclic difference sets of length 5: The
(v,k,lambda)=(11,5,2) set A095028 = {1, 3, 4, 5, 9} and the (21,5,1) set
A095029 = {3, 6, 7, 12, 14}.

Gruß,
Rainer

[1]
https://math.stackexchange.com/questions/3554182/how-do-you-find-a-21-5-1-difference-set-in-mathbbz-21

Brigitta Jennen

unread,
Dec 8, 2021, 10:47:10 AM12/8/21
to
Ralf Goertz schrieb am Mittwoch, 8. Dezember 2021 um 15:42:18 UTC+1:

Hallo Ralf, Hallo Rainer,
ich bin auch noch am Mitrechnen, wenngleich gerade zeitlich
etwas im Hintertreffen.

> Das sieht nicht schnell aus. Und wenn ich mir ein Programm ein zu eins
> wie das C++-Programm geschrieben hätte, dann hätte ich die Primzahlen
> vorher in ein array (ein Set?) gespeichert und dann H darin gesucht.

Das hab ich (unter VBA) so gemacht.
Und da man in diesem Fall unter VBA mit extrem langsamen dynamischen Arrays
arbeitet, kam ich auf die Idee, dies über API-Funktionen (u.a. CopyArray) direkt
im Speicher durch Verschieben und Kopieren von Blöcken zu lösen.
Und hier ist mir dann ein teuflischer Fehler passiert.
Um dieses extrem lahme "ReDim Preserve ..." zu vermeiden, habe ich die Speicherblöcke
also direkt im Speicher kopiert und verschoben, und dabei einen Fehler produziert, der
zu meinen Inkonsistenzen (einzelne Ergebnisse richtig, andere falsch) geführt hat.

Jetzt bin ich am Überlegen, ob ich das evtl. auch unter C++ angehe, deine 1.5 s haben
mich stark beeindruckt.
(Allerdings hab ich auf meinem Rechner keinen C-Compiler und muss
mich jetzt erst mal schlau machen, was ich mir da am besten besorge und installiere).
Grüße B.

Ralf Goertz

unread,
Dec 8, 2021, 11:03:55 AM12/8/21
to
Am Wed, 8 Dec 2021 16:10:15 +0100
schrieb Rainer Rosenthal <r.ros...@web.de>:

> Am 08.12.2021 um 15:42 schrieb Ralf Goertz:
> >
> > [Du kannst doch das Programm extern schreiben und es dann mit
> > read("programm.gp") laden.]
> >
> Danke, werde ich probieren.
>
> > ... weil Maple ja offenbar auch nicht so schnell ist.
> > Die Abfrage, ob H prim wäre, hätte ich wohl in Pari mit isprime(H)
> > gemacht:
> so heißt das auch in Maple. Am 29.11. hatte ich ein bisschen darüber
> erzählt:
> Eine gegeben Zahl z liefert beim Aufruf von isprime(z) den Wert true
> oder false.
> Mit nextprime(z) bekommt man die nächste Primzahl.
> Mit ithprime(k) bekommt man die k-te Primzahl, ithprime(1) = 2.
>
> PARI ist sehr schnell.
> >
> > Verstehe mich nicht flasch, ich mag Pari, meine geliebten
> > Differenzmengen
> > *)
> > diffset=m-> {
> > ...
> > \\%2 = [0, 1, 6, 8, 18]
>
> Hmm, diese Dinger sind mir doch vor nicht allzulanger Zeit mal
> begegnet. Gegoogelt lande ich bei StackExchenge[1], und das dort
> angegebene Programm ähnelt Deinem wirklich sehr - gleicher Autor?

Ja, ja, erwischt.

> Dort steht am Schluss allerding %6 statt %2, und es ist noch eine
> Alternative angegeben:
> ... ? diffset(4) %6 = [0, 1, 6, 8, 18] \\possibly another answer: %7 =
> [0, 1, 4, 14, 16]

Die %6 heißt ja nur, dass es damals die sechste Ausgabezeile war und
heute die zweite. Und Alternativen gibt's immer, nicht nur bei der
Ordnung 4. Speziell sind es eulerphi(v)/(3*n) verschiedene
Differenzmengen (die 0 und 1 enthalten), wobei v=p^2*n+p^n+1 ist und p^n
die (Primpotenz-) Ordnung ist. Du kriegst alle Alternativen (wenn es
stimmt, dass es nur perfekte Differenzmengen nach Singer(1) gibt), indem
du einen Vertreter mit allen Einheiten des Rings (Z/vZ) multiplizierst.
Ich hatte da auch mal was geschrieben:
<https://www.spektrum.de/magazin/kartenspiel-algebra-dobble/1561184>

>
> Ach ja, jetzt erinnere ich mich wieder. Mich hatten im OEIS die
> unsinnigen Offsets bei den "cyclic difference sets" gestört, als ich
> Ende Juli aus Gott weiß was für einem Grund da meine Nase
> reingesteckt hatte. https://oeis.org/A095025 mit dem Beispiel
> a(5) = 2 because there are two cyclic difference sets of length 5:
> The (v,k,lambda)=(11,5,2) set A095028 = {1, 3, 4, 5, 9} and the
> (21,5,1) set A095029 = {3, 6, 7, 12, 14}.

Ja, aber das sind ja verschiedene Typen, die zweite Menge entspricht
meiner {0,1,6,8,18} (einfach -6 (mod v=21) rechnen). Die andere ist nach
meiner Definition gar keine zyklische (Singer-) Differenzmenge, weil
jede Differenz genau 2 Mal vorkommt. Nach meiner Definition zählt nur
genau einmal.

Aber was genau sind die Offsets?

(1) https://www.ams.org/journals/tran/1938-043-03/S0002-9947-1938-1501951-4/S0002-9947-1938-1501951-4.pdf

Ralf Goertz

unread,
Dec 8, 2021, 11:25:34 AM12/8/21
to
Am Wed, 8 Dec 2021 07:47:09 -0800 (PST)
schrieb Brigitta Jennen <ladya...@gmail.com>:

> Ralf Goertz schrieb am Mittwoch, 8. Dezember 2021 um 15:42:18 UTC+1:
>
> Hallo Ralf, Hallo Rainer,
> ich bin auch noch am Mitrechnen, wenngleich gerade zeitlich
> etwas im Hintertreffen.
>
> > Das sieht nicht schnell aus. Und wenn ich mir ein Programm ein zu
> > eins wie das C++-Programm geschrieben hätte, dann hätte ich die
> > Primzahlen vorher in ein array (ein Set?) gespeichert und dann H
> > darin gesucht.
>
> Das hab ich (unter VBA) so gemacht.
> …
>
> Jetzt bin ich am Überlegen, ob ich das evtl. auch unter C++ angehe,
> deine 1.5 s haben mich stark beeindruckt.
> (Allerdings hab ich auf meinem Rechner keinen C-Compiler und muss
> mich jetzt erst mal schlau machen, was ich mir da am besten besorge
> und installiere). Grüße B.

Hier ist das Programm. Falls du selber ran willst, einfach ignorieren.
Wo man ggf. aufpassen muss, ist, ob long long int tatsächlich 64 bit
breit ist. Könnte sein, dass es unter Windows nur 32 sind, dann könnte
es überlaufen.

Spoiler
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-


#include "primes.h" //enthält int primes[]{2,3,5,…,9999991};
#include <iostream>
#include <set>

using namespace std;

const set<int> ps(begin(primes),end(primes));
long long int U=51,
L=10000000; //Grenze, bis zu der wir schauen

int main() {
for (auto &K:ps) {
if (K>L) continue;
for (auto &P:ps) {
if (P==K or P>L) continue;
long long int H=static_cast<long long int>(K)*(K+P)-U; //Achtung Überlauf!
if (H>L) break;
if (H==P or H==K) continue;
if (ps.find(H)!=ps.end()) //H ist prim…
cout<<K<<" "<<P<<" "<<H<<endl;
}
}
return 0;
}

Jens Kallup

unread,
Dec 8, 2021, 12:14:42 PM12/8/21
to
Hallo,

Am 08.12.2021 um 16:47 schrieb Brigitta Jennen:
> (Allerdings hab ich auf meinem Rechner keinen C-Compiler und muss
> mich jetzt erst mal schlau machen, was ich mir da am besten besorge und installiere).
> Grüße B.

ich würde erstmal "Free Pascal Compiler" empfehlen.
Das ist ein freies Programm, das unter vielen Systemen vorhanden ist.
Einst wurde Pascal für Lehrzwecke entwickelt.
Heute gibt es viele andere Anwendungen.

Wärend C/C++ ziemlich hart sein kann, kommt FPC mit viel weniger aus.

Unter Linux kannst Du vielleicht:

# apt install fpc

probieren, falls APT installiert ist / Packetmanager.

Unter Windows 10 empfehle ich Dir das MinGW64 MSYS2.
Da ist der Paketmanager: pacman.

Im Gegensatz zu Cygwin64 ist MinGW für Windows optimiert.
Cygwin ist eher was, wenn Du Linux Programme zu Windows portieren magst.

Ansonsten kann ich Dir auch noch Linux Mint empfehlen.
Als Alternative zu Windows (weil Windows 10 wird bald deprecated sein).

Schick mir eine Mail, und ich kann Dir eine Linux Version auf einen
Stick kopieren, die Du dann einfach booten kannst, wenn der Stick im USB
Schacht gestöpselt ist.

Gruß, Jens

Jens Kallup

unread,
Dec 8, 2021, 12:18:12 PM12/8/21
to
Hallo Ralf,

ich vermute, dass Du Linux verwendest ?
kannst ja mal probieren ob du die Lösung in ein BASH Skript
packen kannst.
Unter Linux gibt es ein kleines Tool namens "bc".
Damit kannst Du weitmehr als ^64 Berechnungen vorantreiben.
Unter meinen Debian Booster System:

# apt install bc

# bc <<< "2^32"

in paar Takten.

Gruß, Jens

Brigitta Jennen

unread,
Dec 8, 2021, 12:50:59 PM12/8/21
to
Ralf Goertz schrieb am Mittwoch, 8. Dezember 2021 um 17:25:34

> Hier ist das Programm. Falls du selber ran willst, einfach ignorieren.
> Wo man ggf. aufpassen muss, ist, ob long long int tatsächlich 64 bit
> breit ist. Könnte sein, dass es unter Windows nur 32 sind, dann könnte
> es überlaufen.
>

Vielen Dank für den Code.
Sehe gerade, dass ich Visual Studio auf einem meiner Rechner installiert habe.
Ich werde Deinen Code jetzt mal laufen lassen und bin gespannt …
Nochmals Danke und Grüße
B.

Rainer Rosenthal

unread,
Dec 8, 2021, 2:43:23 PM12/8/21
to
Am 08.12.2021 um 17:25 schrieb Ralf Goertz:

> L=10000000; //Grenze, bis zu der wir schauen
>
> int main() {
> for (auto &K:ps) {
> if (K>L) continue;
> ...
> }
> return 0;
> }
>
Heißt das, dass Du alle Primzahlen durchnudeln lässt, ohne was mit ihnen
zu machen?

Ich hätte erwartet:

if (K>L) break;

Welchem fundamentalen Missverständnis sitze ich da wieder auf?

Gruß,
Rainer

Ralf Goertz

unread,
Dec 8, 2021, 3:25:38 PM12/8/21
to
Am Wed, 8 Dec 2021 20:43:23 +0100
schrieb Rainer Rosenthal <r.ros...@web.de>:
Oops, ja du hast Recht, da hätte break stehen sollen. Dann läuft das
Programm ja wahrscheinlich noch schneller. :-)

Kann es gerade nicht laufen lassen, weil primes.h auf dem anderen
Rechner liegt und das Erzeugen der Datei mir um diese Uhrzeit ein
bisschen zu aufwendig ist (bin ein Morgenmensch).

Jens Kallup

unread,
Dec 8, 2021, 5:34:57 PM12/8/21
to
bin mal so rotz frech:

#include <iostream>
#include <exception>

#include <vector>

using namespace std;

int main() {
int zahl, teiler, limit;

try {
cout << "Bitte Obergrenze eingeben: ";
cin >> limit;
cout << "Primzahlen bis: " << limit << ":\n";
}
catch (exception& e) {
cout << "Fehler aufgetretten !" << endl;
return 1;
}

// --------------------------------------------
// container für alle ermittelten Primzahlen
// wird deshalb verwendet, um das Programm
// schneller zu machen, da die berechneten
// Werte für das Anzeigen auf dem Bildschirm
// einige CPU-Cycles erfordern !
//
// Die Liste aller Primzahlen wird erst am
// Ende des Programmes ausgegeben.
// --------------------------------------------
vector< int > primzahlen;

for (zahl=2; zahl<limit;zahl++)
{
// ----------------------------------------
// alle zuvor kalkulierten primes werden
// gelöscht - spart speicher, und ist
// somit schnelle (jedes Byte zählt :-)
// ----------------------------------------
if (primzahlen.size() >= 1000) {
for (int prim: primzahlen)
cout << prim << ' ';
primzahlen.clear();
}

teiler = 2;
while (zahl%teiler != 0) teiler++;
if (teiler == zahl)
primzahlen.push_back( zahl );
}

for (int prim: primzahlen)
cout << prim << ' ';
}




hihi, viel Spaß, Jens

Jens Kallup

unread,
Dec 8, 2021, 6:18:41 PM12/8/21
to
sodele, hab das mal sortiert, und eine einfachere C Version
gebastelt, die schneller zu scheinen vermag.

den Quellcode habe ich unter Windows 10 64-Bit Pro in eine
EXE übersetzen können mittels:

die C Version:

gcc -O2 -c test.o test.c
gcc -o test.exe test.o
strip test.exe (ca. 25.000 Bytes)


die C++ Version:

g++ -O2 -c test.o test.cc
g++ -o test.exe test.o


die C Version hat den Vorteil, das man schon berechnete Werte
als Startwert angeben kann.
Das dann ein wenig optimiert, wie ich denke.

das ganze habe ich auf meinen Server gepackt, samt EXE, damit
Ihr dann gleich loslegen könnt.

Das sind dann nach 3 Minuten erhaltene Werte:

1196957 1196959 1196969 1196971 1196977 1196983 1196999 1197011 1197013
1197017 1197023 1197029 1197037 1197041 1197047 1197059 1197067 1197071
1197073 1197083 1197101 1197103 1197107 1197113 1197121 1197143 1197151
1197167 1197179 1197181 1197187 1197193 1197197 1197199 1197211 1197221
1197227 1197233 1197239 1197253 1197257 1197263 1197269 1197277 1197281
1197289 1197299 1197307 1197319 1197331 1197337 1197341 1197347 1197349
1197353 1197359

hier die Links:

https://www.kallup.net/pub/tmp/news/prime/test.cc
https://www.kallup.net/pub/tmp/news/prime/test.c
https://www.kallup.net/pub/tmp/news/prime/prime.zip (all in one :-)

Gruß, Jens

Ralf Goertz

unread,
Dec 9, 2021, 2:44:41 AM12/9/21
to
Am Wed, 8 Dec 2021 21:25:36 +0100
schrieb Ralf Goertz <m...@myprovider.invalid>:
Und als Morgenmensch stelle ich fest, dass diese Änderung sich zeitlich
nur bei kleineren Werten von L auswirken würden. Im jetzigen Zustand ist
K nie größer als L und die Abfrage daher müßig.

Ralf Goertz

unread,
Dec 9, 2021, 2:49:56 AM12/9/21
to
Am Thu, 9 Dec 2021 00:18:37 +0100
schrieb Jens Kallup <kallu...@web.de>:

> sodele, hab das mal sortiert, und eine einfachere C Version
> gebastelt, die schneller zu scheinen vermag.
>
> den Quellcode habe ich unter Windows 10 64-Bit Pro in eine
> EXE übersetzen können mittels:
>
> die C Version:
>
> gcc -O2 -c test.o test.c
> gcc -o test.exe test.o
> strip test.exe (ca. 25.000 Bytes)
>
>
> die C++ Version:
>
> g++ -O2 -c test.o test.cc
> g++ -o test.exe test.o
>
>
> die C Version hat den Vorteil, das man schon berechnete Werte
> als Startwert angeben kann.
> Das dann ein wenig optimiert, wie ich denke.
>
> das ganze habe ich auf meinen Server gepackt, samt EXE, damit
> Ihr dann gleich loslegen könnt.
>
> Das sind dann nach 3 Minuten erhaltene Werte:
>
> 1196957 1196959 1196969 1196971 1196977 1196983 1196999 1197011

Ich weiß nicht, was das für Werte sein sollen, prim sind sie jedenfalls
nicht alle.

$ factor 1196957
1196957: 373 3209

$ factor 1196969
1196969: 137 8737

Rainer Rosenthal

unread,
Dec 9, 2021, 5:21:09 AM12/9/21
to
Am 09.12.2021 um 08:44 schrieb Ralf Goertz:
> Und als Morgenmensch stelle ich fest, dass diese Änderung sich zeitlich
> nur bei kleineren Werten von L auswirken würden. Im jetzigen Zustand ist
> K nie größer als L und die Abfrage daher müßig.
>
Als Mittagsmensch bin ich nicht überzeugt.
Du läufst doch mit einer Schleife über alle K, solange K < L ist.
Die Schleife sollte eigentlich enden, wenn Du mit allen K < L durch bist.
Dazu wäre ein 'break' eine feine Sache,
Du lässt die Schleife aber weiter nudeln, bis alle Primzahlen K
aufgebraucht sind. Oder?

Gruß,
Rainer


Ralf Goertz

unread,
Dec 9, 2021, 5:33:32 AM12/9/21
to
Am Wed, 8 Dec 2021 15:42:16 +0100
schrieb Ralf Goertz <m...@myprovider.invalid>:

> Am Wed, 8 Dec 2021 13:54:28 +0100
> schrieb Rainer Rosenthal <r.ros...@web.de>:
>
> > Warum rechnest Du nicht gleich in PARI/GP? Ich habe wenig Übung
> > darin und komme mit dem Eingabeformat immer durcheinander, weil ich
> > nur ein Konsolenfenster habe, in das ich die Programme reinkopieren
> > muss. Das nervt.
>
> Wenn ich Muße hab, probiere ich es vielleicht nochmal in Pari.

Hab ich jetzt gemacht, und es ist beeindruckend, wie schnell es auch in
Pari funktioniert (knapp 6 Sekunden):

bauer=(U,L)->{
my(res=List());
my(ps=Set(primes([2,L])));
for (i=1,length(ps),
my(K=ps[i]);
for (j=1,length(ps),
my(P=ps[j]);
if (P==K,next);
if (P>L,break);
H=K*(K+P)-U;
if (H>L,break);
if (H==P || H==K,next);
if (setsearch(ps,H), \\H ist prim…
listput(res,[K,P,H]));
);
);
return(res);
}

? KPH=bauer(51,10^7);
cpu time = 5,586 ms, real time = 5,831 ms.
? length(KPH)
%3 = 181828

Man muss genügend Stacksize haben, ich habe in meiner gprc-Datei
folgendes stehen:

parisize=64000000
timer=1

Letzteres ist für die Ausgabe der Ausführungszeit.

Jens Kallup

unread,
Dec 9, 2021, 6:12:47 AM12/9/21
to
Am 09.12.2021 um 08:49 schrieb Ralf Goertz:
> Ich weiß nicht, was das für Werte sein sollen, prim sind sie jedenfalls
> nicht alle.
>
> $ factor 1196957
> 1196957: 373 3209
>
> $ factor 1196969
> 1196969: 137 8737

ja, ei siee ...
hat sicherlich damit zu tun, weil ich den teiler in der Schleife von
der C Version von den Wert der Schleifenvariable verwedet habe.

richtigerweise müsste es in der C++ Version stimmen, weil ich da den
teiler auf 2 setze, was dann auch das höchste minimum sein sollte.
Höher wäre Quatsch.

Ich entschuldige mich für die diese Unannehmlichkeit !

Vielleicht müsste man doch noch schauen, mit modulo 2, ob der teiler
ohne Rest vorhanden ist.
Kann ja ein "mehr" Sachverständiger hier tun.

Der Code ist PD - Public Domain - also für Alle frei verwendbar, und
kostenlos - frei von *allen* Patenten und Besitzansprüchen.

Mit freundlichen Grüßen,

Euer Schreiberling, Jens

Rainer Rosenthal

unread,
Dec 10, 2021, 3:41:45 PM12/10/21
to
Am 01.12.2021 um 22:55 schrieb Rainer Rosenthal:
>
> Na dann. Das Beweis-Loch ist gefunden und gestopft.
> #
> # Der genannte Eindeutigkeitsbeweis für den Fall U = 120 lässt sich auf
> # andere gerade U übertragen, für die U + 1 ein Quadrat ist /und/
> # für die U + H = 2*r ist mit Primzahl r. Dann gilt wirklich:
> # Jedes U mit diesen Eigenschaften hat höchstens ein Lösungstripel.
> #

So ein Käse ... schon wieder ein Loch!

Die genannten Bedingungen treffen auch auf U = 80 zu.
Ich kann nämlich genauere Aussagen treffen:

Aus "höchstens ein ..." kann ich genauer Folgendes machen:

Jedes U mit diesen Eigenschaften hat entweder genau ein Lösungstripel,
wenn U + 1 das Quadrat einer Primzahl ist oder sonst keine Lösung.

Das habe ich heute bemerkt, weil in einer anderen Gruppe zufällig auch
das Bauern-Thema aufkam, und weil dort festgestellt wurde, das es für U
= 80 keine Lösung gibt.

Ich wusste das zwar, aber ich habe mich noch einmal in den Beweis
vertieft und gesehen, dass die Wurzel aus U+1 gerade die Zahl K ist.
Und damit ist klar: K muss prim sein, sonst hat man keine Lösung.

Zuerst war ich irritiert, weil U = 80 ja beide zuerst genannten
Bedingungen erfüllt: 80+1 ist Quadrat (von 9) und 80+2 ist 2*41, also
von der Form 2*r mit Primzahl r = 41.

Gruß,
RR

Ralf Goertz

unread,
Dec 11, 2021, 4:44:09 AM12/11/21
to
Am Thu, 9 Dec 2021 11:21:10 +0100
schrieb Rainer Rosenthal <r.ros...@web.de>:
Sorry, hatte die Nachricht offenbar übersehen. Du hast insofern Recht,
als dass, wenn L zum Beispiel 100 ist, ich trotzdem noch unsinnigerweise
weiterlaufe. Was ich meinte war, dass L ja auf 10^7 gesetzt war und die
Primzahlen in ps alle kleiner als 10^7 sind, so dass „if (K>L)“ niemals
positiv beantwortet werden kann und es daher egal ist, ob dahinter
„break“ oder „continue“ steht. Also kostet nur die Abfrage K>L selbst
Zeit (wenn überhaupt, ich bin eigentlich ziemlich sicher, dass der
Compiler die wegoptimiert hat, da es ja schon zur Compile-Zeit
feststeht, dass sie immer das gleiche Ergebnis bringt).

Rainer Rosenthal

unread,
Dec 11, 2021, 5:46:11 AM12/11/21
to
Am 11.12.2021 um 10:44 schrieb Ralf Goertz:
>
> Sorry, hatte die Nachricht offenbar übersehen. ...
> Primzahlen in ps alle kleiner als 10^7 sind, ...

Besser spät als nie, danke :-)
Als Maple-Nutzer sind mir sämtliche Größenbeschränkungen im
Zahlenbereich erst einmal fremd und sekundär.
Wenn ich zu weit hinaus will, dann merke ich es an den unbequem
werdenden Rechenzeiten.

Mit schrittweisem Vortasten hatte ich bereits nach 10^8 geschielt:

_die_, 5760000, _te_Primzahl_ist_, 99973217
_die_, 5770000, _te_Primzahl_ist_, 100157399
_die_, 5780000, _te_Primzahl_ist_, 100341119

Jetzt ist mir aber weniger nach Rechnen, sondern nach Systematik.
Nachdem ich mich ständig verheddert habe mit den Gerade/Ungerade-Fällen,
will ich die Viertupel KPHU nach Parität klassifizieren und die
entsprechenden Klassen untersuchen.
Ich möchte auf die Einschränkung "P, P, H paarweise verschieden" verzichten.
Einige Klassen sind leer, und die allereinfachste hat Paritäten 0000.
Darin sind K, P, H alle gleich 2, weil es nur diese eine Primzahl 2 mit
Parität 0 mod 2 gibt.
Allzuviele gerade Zahlen U mit 2*(2+2) = 2 + U gibt es auch nicht, womit
geklärt ist, dass (2,2,2,6) das einzige Element in der Klasse mit
Paritäten 0000 ist.

Die Lösungen zu U = 51 gehören zu KPH1, wobei leicht zu sehen ist:
KPH1 = 0001 ist leer: gerade*(gerade+gerade) ungleich gerade+ungerade.

Usw. Ich muss erst einmal fort, aber ich deute schon mal an, wie ich mir
die Fortsetzung meiner Forschungen vorstelle.
(Im Projekt "Alter forscht" bin ich dsm-Stipendiat, wie mein verehrter
Kollege WM auch!).

Noch eine Andeutung: Das U = 51 Thema erinnert an Tontauben-Schießen:
K(K+P) produzieren massenhaft gerade Zahlen, und mit H+51 ballert man
mit Primzahlen H drauflos. Bei K(K+P) = H+51 gibt es Treffer.
Dieser Gedanke soll helfen, Brigittas Frage nach der Unendlichkeit von
Lösungen in bekannte Regionen der Zahlentheorie zu transportieren
(Bertrands Postulat, Andricas Vermutung).

Gruß,
Rainer



Rainer Rosenthal

unread,
Dec 12, 2021, 10:02:05 AM12/12/21
to
Am 25.11.2021 um 16:54 schrieb Brigitta Jennen:
>
> Ein Bauer stellt beim Zählen seiner Tiere fest, dass die Anzahlen seiner
> Kühe, Pferde und Hühner 3 unterschiedliche Primzahlen sind. Außerdem
> fällt ihm auf, dass die Anzahl der Kühe multipliziert mit der Summe aus
> Anzahl der Kühe und Anzahl der Pferde die Anzahl der Hühner um
> 120 übersteigt.
> Wie viele Kühe, Pferde und Hühner befinden sich auf seinem Hof?
>

Sein Kollege hat davon erfahren und zählt auch bei sich nach.
Er hat aber schlecht zugehört, und darum sagt er zum Schulmeister des Dorfs:
"Die Anzahlen meiner Kühe, Pferde und Hühner sind Primzahlen. Die Anzahl
der Kühe multipliziert mit der Summe aus Anzahl der Kühe und Anzahl der
Pferde übersteigt die Anzahl der Hühner um 120. Kannst Du mir sagen, wie
viele Kühe, Pferde und Hühner sich auf meinem Hof befinden?"

Der Schulmeister schmunzelt und sagt: "Du hast ein Detail vergessen,
denn so ist die Aufgabe nicht eindeutig lösbar."

"Verflixt", denkt dieser Bauer, "was habe ich nur vergessen?".
Dann sagt er: "Kriegst Du das Rätsel raus, wenn ich Dir sage, dass das
Produkt aus Anzahl der Kühe und Anzahl der Pferde kleiner ist als die
Anzahl der Hühner?".

Ja, dann klappte es. Oder nicht?

Grß,
Rainer Rosenthal
r.ros...@web.de


Rainer Rosenthal

unread,
Dec 15, 2021, 5:58:02 AM12/15/21
to
Am 11.12.2021 um 11:46 schrieb Rainer Rosenthal:
>
> Jetzt ist mir aber weniger nach Rechnen, sondern nach Systematik.
> Nachdem ich mich ständig verheddert habe mit den Gerade/Ungerade-Fällen,
> will ich die Viertupel KPHU nach Parität klassifizieren und die
> entsprechenden Klassen untersuchen.
> Ich möchte auf die Einschränkung "K, P, H paarweise verschieden"
> verzichten.

Um bei der Systematik weiter zu kommen, habe ich doch noch einmal
gerechnet. Weil ich mich damit aber doch ziemlich vom Bauern-Thema
entfernt habe, bitte ich Interessierte und Interessiertinnen :-)
in den Thread "(K,P,H) prim und K(K+P)=H+U" (02.12.2021) zu kommen, wo
ich jetzt berichten werde.

Gruß,
Rainer

0 new messages