procedure oddson(j) local alist, blist, clist, i alist := [0, 1] blist := [2, 2 * j] clist := [j, j ^ 2 + 1] suspend "a=" || alist[1] || ", b=" || blist[1] || ", c=" || clist[1] suspend "a=" || alist[2] || ", b=" || blist[2] || ", c=" || clist[2] repeat { put(alist, blist[�1] / 2) put(blist, 2 * clist[-1]) put(clist, j * clist[-1] + clist[-2]) suspend "a=" || alist[-1] || ", b=" || blist[-1] || ", c=" || clist[-1] get(alist) # remove debris get(blist) get(clist) } end procedure evenson(j) local alist, blist, clist, i, count alist := [0, 1] blist := [1, 2 * j] clist := [j / 2, j ^ 2 + 1] suspend "a=" || alist[1] || ", b=" || blist[1] || ", c=" || clist[1] suspend "a=" || alist[2] || ", b=" || blist[2] || ", c=" || clist[2] count := 2 repeat { count +:= 1 put(alist, clist[�2]) if count % 2 = 1 then put(blist, clist[�1]) else put(blist, 4 * clist[-1]) put(clist, k / 2 * blist[-1] + clist[-2]) suspend "a=" || alist[-1] || ", b=" || blist[-1] || ", c=" || clist[-1] get(alist) # remove debris get(blist) get(clist) } end