(phixonline)--> atom t0 = time() constant limit = 1e8 sequence sisyphus = {1}, under250 = reinstate(repeat(0,250),1,1) integer np = 0, specific = 1000, count = 1, m atom next = 1 while true do if even(next) then next /= 2 else np += 1 next += get_prime(np) end if if next <= 250 then under250[next] += 1 end if count += 1 if count <= 100 then sisyphus &= next if count == 100 then printf(1,"The first 100 members of the Sisyphus sequence are:\n%s\n", {join_by(sisyphus,1,10," ",fmt:="%3d")}) end if elsif count == specific then printf(1,"%,13d%s member is: %,13d and highest prime needed: %,11d\n", {count, ord(count), next, get_prime(np)}) if count == limit then m = largest(under250,true); exit end if specific *= 10 end if end while printf(1,"\nThese numbers under 250 do not occur in the first %,d terms:\n",count) printf(1," %v\n",{find_all(0,under250)}) printf(1,"\nThese numbers under 250 occur the most in the first %,d terms:\n",count) printf(1," %v all occur %d times.\n",{find_all(m,under250),m}) ?elapsed(time()-t0)