sumset := {6}: keepA := array(1..10000): for m from 1 to 10000 do keepA[m] := 0 od: keepA[2] := 2: keepA[4] := 4: for n from 6 to 10000 by 2 do mytest := 0: for j from 2 to n-2 by 2 do if keepA[j]>0 then if member(keepA[j]+n, sumset) then mytest := 1; break; fi: fi: od: if mytest=0 then keepA[n] := n; for j from 2 to n-2 by 2 do sumset := sumset union {keepA[j]+n} od: fi: od: for i from 2 to 10000 by 2 do if keepA[i]>0 then printf(`%d, `, keepA[i]) fi: od: # James A. Sellers, Feb 26 2003