Ich würd mal sagen die Schleifenbildung kann man schon feststellen, und zwar indem man sich jeden neuen Wert in eine Datenstruktur haut und dann bei jeder neuen Zahl überprüft ob diese schonmal vorgekommen ist. Wenn ja, dann ist eine Schleife vorhanden...
Blöd ist allerdings falls zwar keine Schleife vorkommt, aber diese Berechnung trotzdem nie 1 erreicht.
Ich *vermute* mal bei näherer Betrachtung könnte man die Aufgabe mathematisch rein auf einem Blatt Papier lösen und man kann irgendwie beweisen dass alle natürlichen Zahlen mit dem Verfahren irgendwann zu 1 führen.
Übrigens, sicher dass du keinen Fehler in deinem Code hast?
Ich hab ein billiges Python-Skript geschrieben das innerhalb weniger Sekunden die Produktionen für die ersten paar 1000 n ausgibt, für 27 z.B.:
checking number 27
-> 82 -> 41 -> 124 -> 62 -> 31 -> 94 -> 47 -> 142 -> 71 -> 214 -> 107 -> 322 -> 161 -> 484 -> 242 -> 121 -> 364 -> 182 -> 91 -> 274 -> 137 -> 412 -> 206 -> 103 -> 310 -> 155 -> 466 -> 233 -> 700 -> 350 -> 175 -> 526 -> 263 -> 790 -> 395 -> 1186 -> 593 -> 1780 -> 890 -> 445 -> 1336 -> 668 -> 334 -> 167 -> 502 -> 251 -> 754 -> 377 -> 1132 -> 566 -> 283 -> 850 -> 425 -> 1276 -> 638 -> 319 -> 958 -> 479 -> 1438 -> 719 -> 2158 -> 1079 -> 3238 -> 1619 -> 4858 -> 2429 -> 7288 -> 3644 -> 1822 -> 911 -> 2734 -> 1367 -> 4102 -> 2051 -> 6154 -> 3077 -> 9232 -> 4616 -> 2308 -> 1154 -> 577 -> 1732 -> 866 -> 433 -> 1300 -> 650 -> 325 -> 976 -> 488 -> 244 -> 122 -> 61 -> 184 -> 92 -> 46 -> 23 -> 70 -> 35 -> 106 -> 53 -> 160 -> 80 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
Aktuell bin ich grad bei ~1700000 und bisher konnte immer noch alles auf 1 transformiert werden.