a(b) = { mx=-1; my (d=primes([1, b-1]), x=d, h=b, nb=0, bb=vector(1000)); while (#x, mx = x[#x]; nb += #x; my (xx=[], u=0); for (i=1, #x, for (j=1, #d, my (p=x[i]*b+d[j]); if (setsearch(x,p%h) && isprime(p), bb[u++]=p; if (u==#bb, xx=setunion(xx,Set(bb)); u=0; ); ); my (q=d[j]*h+x[i]); if (setsearch(x,q\b) && isprime(q), bb[u++]=q; if (u==#bb, xx=setunion(xx,Set(bb)); u=0; ); ); ); ); x=setunion(xx,Set(bb[1..u])); h*=b; ); nb } allocate mem(2^30) for (n=2, 10 000, print (n " " a(n))) quit