--global (if you want to be able to call this from test.exw) function hailstone(atom n) sequence s = {n} while n!=1 do if remainder(n,2)=0 then n /= 2 else n = 3*n+1 end if s &= n end while return s end function global function hailstone_count(atom n) integer count = 1 while n!=1 do if remainder(n,2)=0 then n /= 2 else n = 3*n+1 end if count += 1 end while return count end function if include_file()==1 then sequence s = hailstone(27) integer ls = length(s) s[5..-5] = {".."} puts(1,"hailstone(27) = ") ? s printf(1,"length = %d\n\n",ls) integer hmax = 1, imax = 1,count for i=2 to 1e5-1 do count = hailstone_count(i) if count>hmax then hmax = count imax = i end if end for printf(1,"The longest hailstone sequence under 100,000 is %d with %d elements.\n",{imax,hmax}) end if