sequence state = repeat(0,55) integer pos constant MAX = 1e9 function cap(integer n) if n<0 then n += MAX end if return n end function function next() pos = mod(pos,55)+1 integer temp = cap(state[pos]-state[mod(pos+30,55)+1]) state[pos] = temp return temp end function procedure init(integer seed) sequence temp = repeat(0,55) temp[1] = cap(seed) temp[2] = 1 for i=3 to 55 do temp[i] = cap(temp[i-2]-temp[i-1]) end for for i=1 to 55 do state[i] = temp[mod(34*i,55)+1] end for pos = 55 for i=55 to 219 do {} = next() end for end procedure init(292929) for i=220 to 222 do printf(1,"%d: %d\n",{i,next()}) end for