18 lines
314 B
Plaintext
18 lines
314 B
Plaintext
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.
|