s = 0 unseen = 1 seen(v) = bit test(s, v) see(v) = s = bit or(s, 2^v); while (seen(unseen), unseen++) { see(1); for (n=1, #a = vector(10 000), for (v=unseen, oo, if (!seen(v), if (ispower(v), see(v), t = v; ok = 1; forstep (k=n-1, 1, -1, if (ispower(t+=a[k]), ok = 0; break; ); ); if (ok, a[n] = v; break; ); ); ); ); see(a[n]); print (n " " a[n]); ); } quit