Mein Ansatz war die Folge rückwärts zu berechnen (da gibt es wenigstens nur 1 bis 2 mögliche Lösungen pro Schritt).
Code
1 -> 2 -> 4 -> 8 -> 16 -> 5 -> 10 -> 20 -> 40 -> 13 -> 26 -> 52 -> 17 -> 34 -> 11 -> 22 -> 7 -> 14 -> 28 -> 56 -> 112 -> 37 -> 74 -> 148 -> 49 -> 98 -> 196 -> 65 -> 130 -> 43 -> 86 -> 172 -> 344 -> 688 -> 229 -> 458 -> 916 -> 305 -> 610 -> 203 -> 406 -> 812 -> 1624 -> 541 -> 1082 -> 2164 -> 721 -> 1442 -> 2884 -> 961 -> 1922 -> 3844 -> 7688 -> 15376 -> 5125 -> 10250 -> 20500 -> 6833 -> 13666 -> 4555 -> 9110 -> 18220 -> 6073 -> 12146 -> 24292 -> 48584 -> 97168 -> 32389 -> 64778 -> 129556 -> 259112 -> 518224 -> 172741 -> 345482 -> 690964 -> 230321 -> 460642 -> 153547 -> 307094 -> 614188 -> 1228376
Allerdings ist das nicht wirklich die längste Folge unter 1 Mio^^
AutoIt
Global $m = 1
For $i = 0 To 99 Step 1
ConsoleWrite($m)
$m = (IsInt(F2($m)) And Not IsInt(F2($m) / 2) And F2($m) <> 1 And Not IsInt(F2($m) / 3)) ? F2($m) : F1($m)
If $m > 1e6 Then
ConsoleWrite(' -> ' & $m & @CRLF)
ExitLoop
EndIf
ConsoleWrite(' -> ')
Next
Func F1($n)
Return 2 * $n
EndFunc
Func F2($n)
Return ($n - 1) / 3
EndFunc
Alles anzeigen
lg
M