13 lines
512 B
Plaintext
13 lines
512 B
Plaintext
fcn collatz(n,z=L()){ z.append(n); if(n==1) return(z);
|
|
if(n.isEven) return(self.fcn(n/2,z)); return(self.fcn(n*3+1,z)) }
|
|
|
|
h27:=collatz(27);
|
|
println("Hailstone(27)-->",h27[0,4].concat(","),"...",
|
|
h27[-4,*].concat(",")," length ",h27.len());
|
|
|
|
[2..0d100_000].pump(Void, // loop n from 2 to 100,000
|
|
collatz, // generate Collatz sequence(n)
|
|
fcn(c,n){ // if new longest sequence, save length/C, return longest
|
|
if(c.len()>n[0]) n.clear(c.len(),c[0]); n}.fp1(L(0,0)))
|
|
.println();
|