%I #23 Dec 02 2020 08:42:14
%S 1,2,8,9,11,14,18,20,23,32,35,38,40,47,49,50,53,56,57,58,59,62,67,71,
%T 73,74,77,89,91,92,95,98,101,104,106,114,116,128,134,135,137,140,148,
%U 149,152,155,156,158,159,162,164,169,172,173,185,188,191,194,197
%N Numbers k such that the process starting at (k, 0) mapping (k, t) to (k+1, t+k) if t = 0 (mod k), and (k-1, t+k) otherwise, eventually reaches (1, T) for some T.
%C At each step, let the state of the process be (i,t), i_max the greatest i seen so far and i_min > 1 the least i seen so far. Consider the triples (i,j,t%j) for 2 <= j <= i_max, where i_max is the largest i seen so far. If all of those triples have been seen in previous steps, then the next step will not produce a new triple either, so the process will never reach i=1.
%e For k = 8, the process stops at T = 57: (8,0), (9,8), (8,17), (7,25), (6,32), (5,38), (4,43), (3,47), (2,50), (3,52), (2,55), (1,57).
%e For k = 4, the process never stops: (4,0), (5,4), (4,9), (3,13), (2,16), (3,18), (4,21), ...
%o (Python)
%o def isok(n):
%o t = 0
%o seen = set()
%o maxn = n
%o steps = 0
%o while n>1:
%o maxn = max(maxn,n)
%o tuples = set((n,m,t%m) for m in range(2,maxn+1))
%o if tuples <= seen:
%o break
%o seen = seen.union(tuples)
%o t += n
%o if t%n==0:
%o n += 1
%o else:
%o n -= 1
%o return n==1
%K easy,nonn
%O 1,2
%A _Christian Perfect_, Nov 10 2020