Forum: PC-Programmierung Eine kleine Knobelei. Auch für den kommenden Freitag…


von Norbert (der_norbert)


Angehängte Dateien:

Lesenswert?

Erstelle ein Python Programm mit dem die Fibonacci-Folge bis zu einer 
Million ausgegeben wird. Die niedrigste Anzahl Programmzeilen gewinnt 
(Kommentare zählen NICHT mit). Bei Gleichstand gewinnt die geringste 
Anzahl Zeichen für alle Programmzeilen summiert (Leerzeichen 
mitgerechnet, keine Tabs erlaubt).

Vielleicht antwortet ihr zuerst nur mit mit xxx/xxx (Zeilen/Zeichen) um 
den anderen den Spaß nicht zu verderben. Habe einen Versuch mal 
angehängt.
: Verschoben durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Klingt nach OPCC (Obfuscated Python Code Contest).
von Norbert (der_norbert)


Lesenswert?

Jörg W. schrieb:
> Klingt nach OPCC (Obfuscated Python Code Contest).

Isses nicht. Normaler Python Code, perfekt lesbar.
von Helmut H. (helmuth)


Lesenswert?

war doch klar. 42 Bytes in zwei Zeilen:
1
09.07.2026  11:29                42 fib.py
2
python fib.py
3
0
4
1
5
1
6
2
7
...
8
317811
9
514229
10
832040
: Bearbeitet durch User
von Yalu X. (yalu) (Moderator)


Lesenswert?

Norbert schrieb:
> Die niedrigste Anzahl Programmzeilen gewinnt

(Fast) jeder wird es schaffen, den Code in 1 Zeile zu quetschen.
Deswegen wäre die Anzahl der Zeichen (einschließlich Leerzeichen und
Newlines) ein besseres Kriterium.
von Stefan P. (form)


Lesenswert?

Norbert schrieb:
> Fibonacci-Folge bis zu einer Million

Aber 1000000 ist doch gar keine Zahl dieser Folge.
Beitrag #8071876 wurde vom Autor gelöscht.
von Helmut H. (helmuth)


Lesenswert?

Yalu X. schrieb:
> den Code in 1 Zeile zu quetschen.
leider darf while nicht nach Semikolon stehen, daher zwei Zeilen
von Yalu X. (yalu) (Moderator)


Lesenswert?

Helmut H. schrieb:
> Yalu X. schrieb:
>> den Code in 1 Zeile zu quetschen.
> leider darf while nicht nach Semikolon stehen, daher zwei Zeilen

Nimm exec().
von Stefan P. (form)


Lesenswert?

Ich habe es in 38 Bytes geschafft. Bin gespannt wie klein es werden 
kann...
von Ron-Hardy G. (ron-hardy)


Lesenswert?

6/88
von Norbert (der_norbert)


Lesenswert?

Yalu X. schrieb:
> Nimm exec().

Versau's doch gleich für alle. ;-)

Dann eben noch eine Version ohne exec…
von Norbert (der_norbert)


Lesenswert?

Stefan P. schrieb:
> Ich habe es in 38 Bytes geschafft.

Zeilen?
von Andreas B. (bitverdreher)


Lesenswert?

Norbert schrieb:
> Stefan P. schrieb:
>> Ich habe es in 38 Bytes geschafft.
>
> Zeilen?

1/2 (bei 80 Zeichen/Zeile)
von Stefan P. (form)


Lesenswert?

Aktuell bin ich bei 2 Zeilen mit 34 Bytes.
Das Programm darf ruhig bis zur Unendlichkeit weiterlaufen, oder?
von Helmut H. (helmuth)


Lesenswert?

Yalu X. schrieb:
> Nimm exec().
stimmt, eine Zeile aber 53 byte
09.07.2026  11:29                42 fib.py
09.07.2026  11:54                53 fibex.py
von Yalu X. (yalu) (Moderator)


Lesenswert?

Norbert schrieb:
> Yalu X. schrieb:
>> Nimm exec().
>
> Versau's doch gleich für alle. ;-)

Sorry, das war nicht meine Absicht. Ich hatte das da überlesen:

Norbert schrieb:
> Bei Gleichstand gewinnt die geringste Anzahl Zeichen für alle
> Programmzeilen summiert (Leerzeichen mitgerechnet, keine Tabs
> erlaubt).

Ohne das hätte es viele gleichwertige Lösungen gegeben, deswegen mein
Einwand.
von Norbert (der_norbert)


Lesenswert?

Stefan P. schrieb:
> Das Programm darf ruhig bis zur Unendlichkeit weiterlaufen, oder?

Wenn die Unendlichkeit unterhalb einer Million beginnt, dann ja. ;-)
von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Stefan P. schrieb:
> Aber 1000000 ist doch gar keine Zahl dieser Folge.

Die Folge hört sowieso bei 832040 auf. Jede größere Zahl wäre schon 
größer als eine Million. Da es sich nur um 30 Zahlen handelt, könnte man 
es sogar schneller mit dem Taschenrechner rechnen, als extra ein 
Programmchen dafür zu schreiben.

Ich kann aber trotzdem mal versuchen ein kleines Quickbasic-Programm auf 
die Beine zu stellen und das ganze von der Länge her mit einem 
Turbo-Pascal-Programm zu vergleichen.

Ein Excel-Programmchen wäre auch noch ganz interessant, weil es in den 
normalen Büros am Arbeitsplatz am meisten verwendet wird. Das könnte ich 
eigentlich gleich in der Mittagspause mal machen, aber ausgerechnet 
heute gibt es in der Kantine leckere Spaghetti Bolognese da kann ich 
leider nicht widerstehen.
von Norbert (der_norbert)


Lesenswert?

Yalu X. schrieb:
> Ohne das hätte es viele gleichwertige Lösungen gegeben, deswegen mein
> Einwand.

Wir können das Ganze ja dahingehend erweitern, dass nun nach zwei 
Lösungen gesucht wird.

Eine mit ›exec‹ und eine ohne.
von Sheeva P. (sheevaplug)


Lesenswert?

Michael M. schrieb:
> Da es sich nur um 30 Zahlen handelt, könnte man
> es sogar schneller mit dem Taschenrechner rechnen, als extra ein
> Programmchen dafür zu schreiben.

Aber nur, wenn man ein extrem schlechter Programmierer ist.
von Εrnst B. (ernst)


Lesenswert?

33 Zeichen, wer erkennt die Programmiersprache?
1
0p1p[dsa+plarlY1-dsY0<F]sF29sYlFx
von Norbert (der_norbert)


Angehängte Dateien:

Lesenswert?

Εrnst B. schrieb:
> wer erkennt die Programmiersprache?

Knorr!
von Helmut H. (helmuth)


Lesenswert?

Stefan P. schrieb:
> Aktuell bin ich bei 2 Zeilen mit 34 Bytes.
rechnet man das LF (0a) nicht mit, komme ich auf 37:
1
61 3d 30 3b 62 3d 31 0a 77 68 69 6c 65 20 61 3c
2
31 65 36 3a 70 72 69 6e 74 28 61 29 3b 62 3d 61
3
2b 62 3b 61 3d 62
Bitte um einen kleinen Hinweis wie man noch 3 byte einsparen kann?
von Norbert (der_norbert)


Lesenswert?

Helmut H. schrieb:
> Bitte um einen *kleinen Hinweis*

Die Antwort findet sich in den ›Built-in Types‹
Aber Obacht: Stefan schrieb:
> Das Programm darf ruhig bis zur Unendlichkeit weiterlaufen, oder?

Darf es nicht…
: Bearbeitet durch User
von Daniel A. (daniel-a)


Lesenswert?

1
f=lambda a,b:a<=1e6 and (print(a),f(b,a+b));f(0,1)

50 Zeichen. Ohne die Limite (das "a<=1e6 and ") wären es 39.
von Εrnst B. (ernst)


Lesenswert?

Εrnst B. schrieb:
> 33 Zeichen

Bin die Zählvariable "Y" noch losgeworden, 24 Zeichen
1
0p1p[dsa+plard7d^>F]dsFx
(Trick ist: Die Rekursion auf "F" läuft, solange 7⁷ ("7d^") größer als 
die vorletzte Zahl ist)

Danke an Michael für die Idee:
Michael M. schrieb:
> Taschenrechner
von Norbert (der_norbert)


Lesenswert?

Daniel A. schrieb:
> f=lambda a,b:a<=1e6 and (print(a),f(b,a+b));f(0,1)
>
> 50 Zeichen. Ohne die Limite (das "a<=1e6 and ") wären es 39.

Du genießt es bestimmt dich hinter die Kinokasse zu stellen und jedem 
der sich gerade eine Karte gekauft hat zu erzählen wie der Film ausgeht.
von Daniel A. (daniel-a)


Lesenswert?

Eventuell gibt es ja noch bessere Lösungen. Ausserdem gibt es viele 
Ansätze. Die hier sind etwas länger:
1
print([round(1.618034**x/2.236068) for x in range(31)])
1
x=[0,1];print([x:=[*x,sum(x[-2:])] for i in range(29)][-1])
1
x=[0,1];print([x:=[*x,x[-1]+x[-2]] for i in range(29)][-1])
1
print([0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040])
: Bearbeitet durch User
Beitrag #8071962 wurde vom Autor gelöscht.
von Norbert (der_norbert)


Lesenswert?

Daniel A. schrieb:
> Eventuell…


Meine Methode:

Eine Aufgabe. Einsteiger, Forgeschrittene und Experten suchen und finden 
Lösungen auf ihrem Niveau. Dass ein Einsteiger nicht die gleichen 
Resultate wie ein Profi liefert, ist jedem klar. Ob nun mit 1,2,5 oder 
10 Zeilen, who cares?
Aber darauf kommt es gar nicht an. Denn jeder beschäftigt sich zunächst 
einmal damit, denkt selbstständig darüber nach und findet dabei 
vielleicht ein paar neue Aspekte.

Deine Methode:

Hier isses!

Mit dem erwartbaren Resultat: Ah … Yo … click … abputzen … fertig.

Ich hatte für meine im Eröffnungsbeitrag angehängte Version (Passwort 
wäre morgen gekommen) schon eine vollständige, dokumentierte Erklärung 
(für die Einsteiger), die jeder in Schritten hätte nachvollziehen 
können.
1
-rw------- 1 norbert norbert 2307  9. Jul 14:25 'Eine_mögliche_Version Herleitung.txt'
2
-rwx------ 1 norbert norbert 1492  9. Jul 12:04  Eine_mögliche_Version.py
3
-rw------- 1 norbert norbert  955  9. Jul 10:26  Eine_mögliche_Version.py.asc

Ist jetzt in /dev/null zu finden. Nicht im /dev/null des boards, in 
meinem.

Ad: Ohne exec, ohne lambda
: Bearbeitet durch User
von F. P. (fail)


Lesenswert?

Daniel A. schrieb:
> f=lambda a,b:a<=1e6 and (print(a),f(b,a+b));f(0,1)
>
> 50 Zeichen. Ohne die Limite (das "a<=1e6 and ") wären es 39.

Das läßt sich noch um 3 Zeichen kürzen:
1
f=lambda a,b:a<1e6and(print(a),f(b,a+b));f(0,1)

Gibt aber wie das Original noch ein paar Sachen mehr als die Zahlen aus.
: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Man könnte auch aus dem Keller raus in die Welt gehen und ne passend 
grosse Sonnenblume finden: 
http://www.3d-meier.de/tut22/Sonne/Seite1.html
von Nick (b620ys)


Lesenswert?

Norbert schrieb:
> Die niedrigste Anzahl Programmzeilen gewinnt
> (Kommentare zählen NICHT mit).

Der Masstab wäre für mich die generierte Codegröße, nicht ob das 
Ergebnis ein nicht wartbarer Quältext ist.
Ausser, man schreibt ausdrücklich einen Obfuscated 
C/Perl/Python/Tcl/Brainfuck ... contest aus.

Wie sieht eigentlich obfuscated Brainfuck aus?
von Εrnst B. (ernst)


Lesenswert?

Um das Rätsel um die Knorr-Buchstabensuppe aufzulösen:
1
0p1p[dsa+plard7d^>F]dsFx
2
0 p 1 p [d sa + p la r d 7 d ^ >F] d sF x
ist für den "Desk Calculator", "dc", Unix-Kommandozeilen-Taschenrechner 
mit RPN von 1971. (Aus der Zeit um Forth)
RIP, Lorinda Cherry.

Der Code ist nicht extra obfuscated, das gehört so (Leerzeichen sind 
optional).
Und für diesen Contest natürlich außer Konkurrenz, falsche Sprache.

0 und 1 auf den Stack, jeweils ausgeben ("p"), Makro/String definieren 
[..], duplizieren ("d"), als Variable F speichern ("sF"), und die zweite 
Kopie ausführen ("x")

innerhalb vom Makro: letzte Fibonacci-Zahl nach Variable "a" kopieren 
("d" und "sa"), dann die beiden letzten Zahlen addieren ("+") Summe 
ausgeben ("p"), Wert von "a" wieder auf den Stack ("la"), Reihenfolge 
der beiden Stack-Elemente umdrehen ("r"), Top-of-stack duplizieren 
("d"), 7 zweimal auf den Stack (7 und "d"), potenzieren (^), 
Conditional, beide letzten Stackwerte vergleichen, wenn größer, dann 
Makro F ausführen (">F") als Rekursion.
von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Εrnst B. schrieb:
> letzte Fibonacci-Zahl nach Variable "a" kopieren ("d" und "sa"), dann
> die beiden letzten Zahlen addieren ("+") Summe ausgeben ("p"), Wert von
> "a" wieder auf den Stack ("la"),

21 + 13 = 34

34 + 21 = 55

55 + 34 = 89

89 + 55 = 144

usw.

Eigentlich bräuchte man nur das Summenergebnis mit der größeren Zahl der 
beiden Summanden erneut addieren und diese Schleife einfach nur 30 Mal 
wiederholen lassen. Die Überprüfung, ob die Zahl letztendlich größer als 
eine Million ist, kann man wegfallen lassen. Man weiß ja dass es nur 30 
Zahlen sind. Also lässt man die Schleife einfach automatisch nach 30 
Wiederholungen enden. Fertig.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Εrnst B. schrieb:

> Der Code ist nicht extra obfuscated, das gehört so (Leerzeichen sind
> optional).

Dem würde ich für den Thread hier trotzdem uneingeschränkt das 
obfuscation award zugestehen. ;-)

Ich habe auch mal FORTH programmiert und auch HP48, aber dc ist ja 
durchaus noch 'ne Runde kryptischer.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Angehängte Dateien:

Lesenswert?

Wenn man sich das als Blockbild digitaler Logik (siehe Anhang) 
hinpinselt zerfällt das Ganze in wenige Subblöcke:
* ein Summierer
* zwei Register, eins davon mit (invertiertem) enable/load
* ein Toggle-FlipFlop

Die Register haben jeweils "0" oder "1" als Reset-value, mehr ist da 
nicht an Datenpfad.
Der controllpfad (FSM) ist auch nicht viel komplexer, kommt halt ein 
counter oder ein komperator "kleiner als" hinzu.

Sollte in ein kleines CPLD passen.
: Bearbeitet durch User
von Helmut H. (helmuth)


Lesenswert?

Bradward B. schrieb:
> kommt halt ein counter oder ein komperator "kleiner als" hinzu.

und ein Anlasser um das erste Element (0) zu erzeugen.
von Εrnst B. (ernst)


Lesenswert?

Michael M. schrieb:
> Eigentlich bräuchte man nur das Summenergebnis mit der größeren Zahl der
> beiden Summanden erneut addieren

das macht "dsa+plar"
Stack: fib(n-1),fib(n)
"d"
Stack: fib(n-1),fib(n),fib(n)
"sa"
Stack: fib(n-1),fib(n) Variable: a: fib(n)
"+"
Stack: fib(n+1)
"p" -> print fib(n+1), Stack unverändert
"la"
Stack: fib(n+1),fib(n)
"r"
Stack: fib(n),fib(n+1) -> Bereit für den nächsten Durchlauf


> und diese Schleife einfach nur 30 Mal
> wiederholen lassen.

War so in der ersten Version von mir. Ist in "dc" umständlich, wenn die 
Zählvariable am Stack liegt, als Variable geht viel Code für load&store 
drauf:
"29sY" -> 29 in Variable Y
in der Schleife:
"lY1-dsY" -> loadY, -1, dup, storeY

> Die Überprüfung, ob die Zahl letztendlich größer als
> eine Million ist, kann man wegfallen lassen.

War dann aber ein paar Zeichen kürzer.
1 Mio ließe sich in dc als "10 6^" schreiben, bräuchte aber ein 
Leerzeichen.
die Fibonacci-Zahlen liegen "da oben" weit genug auseinander, dass ich 
als Alternativ-Zahl 7^7 für den Vergleich nehmen konnte. "7 7^" oder mit 
dup "7d^", nochmal zwei Buchstaben gespart.

Jörg W. schrieb:
> Ich habe auch mal FORTH programmiert und auch HP48, aber dc ist ja
> durchaus noch 'ne Runde kryptischer.

Ja... Die Syntax ist vermutlich als "Welche Tasten würde ich in welcher 
Reihenfolge am Taschenrechner tippen" entstanden.
Und musste in ASM gut verarbeitbar sein, das Original-"dc" ist kurz vor 
"C" entstanden.

Macht mal Spaß, sich wieder in das alte Zeug reinzufuchsen, aber real 
verwenden möchte ich es nicht mehr.
von Rbx (rcx)


Lesenswert?

1
a, b = 0, 3
2
for _ in range(10):
3
    print(a)
4
    a, b = b, 7 * b - a
Die KI ist auch gar nicht schlecht, wenn man nur die Endfibo-Zahl 
braucht.
: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

>> kommt halt ein counter oder ein komperator "kleiner als" hinzu.
>
> und ein Anlasser um das erste Element (0) zu erzeugen.

Ja, der RST(reset)-generator, sehe ich extra zur FSM, so als POR 
(PowerOnReset).
: Bearbeitet durch User
von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Rbx schrieb:
> Die KI ist auch gar nicht schlecht, wenn man nur die Endfibo-Zahl
> braucht.

Wenn KI erlaubt ist und man benötigt wirklich nur die Endfibonaccizahl, 
die direkt unter einer Million liegt, dann wäre ich mit nur einer 
einzigen Zeile fertig und hätte das Rennen somit automatisch gewonnen.

😅

Man gibt einfach die Frage direkt in die Suchzeile von der KI ein: "Wie 
lautet die größte Fibonaccizahl unter einer Million?" Und man bekommt 
direkt im Klartext die Antwort, sowohl durch das gesprochene Wort von 
einer netten Dame (Audioausgabe aus dem Lautsprecher) und auch als 
geschriebenen Text zum Ablesen vom Bildschirm:

832040

Das ist aber in Wirklichkeit etwas gemogelt. Die eigentliche 
Rechenleistung fällt dadurch ja nicht weg, sie wird nur aus den eigenen 
4 Wänden in die Cloud verlagert.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

>> Die KI ist auch gar nicht schlecht, wenn man nur die Endfibo-Zahl
>> braucht.
>
> Wenn KI erlaubt ist und man benötigt wirklich nur die Endfibonaccizahl,
> die direkt unter einer Million liegt, dann wäre ich mit nur einer
> einzigen Zeile fertig und hätte das Rennen somit automatisch gewonnen.

Also ohne KI bräuchte es statt einer Zeile nur einen Suchstring wie 
"Fibonacci wiki". Klar, dann müsste man noch scrollen, aber man hätte 
auch den Kontext und wäre überzeugt das die 832 040 die Höchste der 
Gesuchten ist.

Ohne Computer könnte man in Tabellenbüchern nachschlagen - 
Überraschenderweise ist in "meinem" Tabellenbuch keine Fibonacci-Folge 
angegeben.
Braucht wohl in der Praxis keiner, anders als diverse Integrale, 
Verteilungen und Fourierentwicklungen die in dem Tabellenbuch gelistet 
werden.
: Bearbeitet durch User
von Zino (zinn)


Lesenswert?

Bradward B. schrieb:
> Überraschenderweise ist in "meinem" Tabellenbuch keine Fibonacci-Folge
> angegeben.

Die kanonische Sammlung von Folgen ganzer Zahlen ist diese:

https://oeis.org/
https://oeis.org/A000045

Gab es auch mal in Buchform (1973).
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Zino schrieb:
> Bradward B. schrieb:
>> Überraschenderweise ist in "meinem" Tabellenbuch keine Fibonacci-Folge
>> angegeben.
>
> Die kanonische Sammlung von Folgen ganzer Zahlen ist diese:
>
> https://oeis.org/
> https://oeis.org/A000045
>
> Gab es auch mal in Buchform (1973).

Aus der Zeit hab ich in der Erbmasse wohl noch Logarithmentafeln, 
-bücher. Braucht man glücklicherweise seit der Erfindung des 
Taschenrechners nicht mehr.

Ansonsten ab und zu mal ein standardisiertes Polynom, ja da hat die 
Fernmeldeunion mal ein paar magic numbers wie ne CRC-32 o.ä. publiziert.

Ja mei, heute sind sogar Telefonbücher ausgestorben und SF-Autoren wie 
Lem, hätten philosophische Werke wie "Die Stimmes des Herrn" nicht 
geschrieben (in letzterem ist der Einstiegsgedanke, das in einem 
Tabellenbuch eine Zufallsfolge abgedruckt ist, die sich 
unerwarteterweise wiederholt) ...
https://de.wikipedia.org/wiki/Die_Stimme_des_Herrn

Ja, Zahlenfolgen können so manchen zur "Spinnerei" verleiten  ;-)
von Torsten B. (butterbrotstern)


Lesenswert?

Zu Abwechslung eine Zeile Postscript in der Ghostscript-Konsole:
GS>0 1{dup 3 1 roll add dup 1e6 gt{exit}if}loop pop =
832040
GS>
oder
GS>0 1 29{dup 3 1 roll add}repeat = pop
832040
GS>
oder
GS>0 1 29{exch 1 index add}repeat = pop
832040
GS>

Erklärung:
1
Code       Stack
2
0 1 dup    0 1 1
3
3 1 roll   1 0 1  rotiert die oberen 3 Stackelemente um 1 nach rechts
4
add dup    1 1 1
5
3 1 roll   1 1 1  exch 1 index macht [fast] das gleiche
6
add dup    1 2 2
7
3 1 roll   2 1 2
8
add dup    2 3 3
9
3 1 roll   3 2 3
10
add dup    3 5 5
11
3 1 roll   5 3 5
12
add dup    5 8 8
13
3 1 roll   8 5 8
14
add dup    8 13 13
15
etc.
: Bearbeitet durch User
von Stefan P. (form)


Angehängte Dateien:

Lesenswert?

Norbert schrieb:
> Erstelle ein Python Programm mit dem die Fibonacci-Folge bis zu einer
> Million ausgegeben wird.

Da der Freitag nun vorbei ist, poste ich mal zwei Möglichkeiten mit je 
38 Byte.
von Norbert (der_norbert)


Lesenswert?

Stefan P. schrieb:
> Da der Freitag nun vorbei ist, poste ich mal zwei Möglichkeiten mit je
> 38 Byte.

Die Aufgabenstellung wurde hier zwar schon in jeder erdenklichen Art und 
Weise kaputt gemacht, aber dein Einsatz verdient eine Antwort.

fib1: Mhhhh, prüft aber nicht auf 1e6 sondern führt etwas vorbestimmt 31 
mal aus.

fib2: Gut soweit, aber zwei Zeilen. Übernehme die zweite Zeile
genau so wie sie ist als Basis.
Lösche die Erste und modifiziere nun die einzig verbleibende Zeile bis 
es funktioniert. Ohne Exec, Lambda, List compr., usw…
Das geht, versprochen. ;-)
: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.