go2 => time(max_chain(MaxN,MaxLen)), printf("MaxN=%w,MaxLen=%w%n",MaxN,MaxLen). table (-,max) max_chain(N,Len) => between(2,99_999,N), gen(N,Len). table (+,-) gen(1,Len) => Len=1. gen(N,Len), N mod 2 == 0 => gen(N div 2,Len1), Len=Len1+1. gen(N,Len) => gen(3*N+1,Len1), Len=Len1+1.