ich kenne mich auch nicht damit aus, aber so kompliziert dürfte es eigentlich nicht sein, irgendwo muss ein trick sein. und es gibt tatsächlich einen. ich habe nochmal drüber nachgedacht.
es handelt sich um eine fixpunkt-iteration. das heißt, dass man eine funktion f(x) = 1/(1-x) hat, in die man einen anfangswert (2004) einsetzt. dann setzt man das ergebnis, das man daraus erhält (f0(2004)) wieder in f(x) ein und erhält so f1(2004).
stelle dir die funktion als maschine vor. du steckst x=2004 rein und am anderen ende kommt f0(2004) wieder raus. dann steckst du das was du herausbekommen hast, f0(2004), wieder rein und am anderen ende kommt nun f1(2004) raus.
in der regel sollte das was rauskommt sich einem festen wert (dem fixpunkt) annähern, aber es kann vorkommen, dass man stattdessen im kreis läuft. genau das ist hier der fall, was die suche nach dem ergebnis erheblich einfacher macht. leider kann ich das nicht so recht in worte fassen, daher habe ich es mal beispielhaft vorgerechnet:
es ist ein bischen geschmiert, aber ich hoffe dass klar wird, was ich gemacht habe. ich hab 2004 in die maschine gesteckt und es kam ein ergebnis raus. dann habe ich das ergebnis in die maschine gesteckt und es kam ein neues ergebnis raus. das habe ich ein paar mal wiederholt, bis überraschenderweise wieder das rauskam, was ich am anfang reingesteckt habe.
f0 = f3 = f6 = f9 = ...
f1 = f4 = f7 = f10 = ...
f2 = f5 = f8 = f11 = ...
oder allgemein
fn = f(n mod 3)
wobei mod modulo-division bedeutet, d.h. das das ergebnis von (a mod b) der rest der ganzzahligen division a/b ist.
z.b.:
9/4 = 2 REST 1
also
9 mod 4 = 1
oder eben
2004 mod 3 = 0.
ich hoffe, ich konnte es einigermaßen verständlich erklären.