(PARI)
QresCode(n, nPrimes) = {
code = bitand(n, 7)>>1;
for (j=2, nPrimes,
x = Mod(n, prime(j));
if (issquare(x), code += (1<<j));
);
return (code);
}
QCodeArray(n) = {
totalEntries = 1<<(n+1);
f = vector(totalEntries);
f[totalEntries-3] = 1; \\ 1 always has the same code: ...111100
counter = 1;
forprime(p=prime(n+1), +oo,
code = QresCode(p, n);
if (f[code+1]==0,
f[code+1]=p;
counter += 1;
if (counter==totalEntries, return(f));
)
)
}
sequence(n) = {
f = QCodeArray(n);
primorial = prod(i=1, n, prime(i));
entries = eulerphi(4*primorial);
a = vector(entries);
i = 1;
forstep (x=1, 4*primorial-1, 2,
if (gcd(x, primorial)==1,
a[i] = f[QresCode(x, n)+1];
i += 1;
);
);
return(a);
}
sequence(3)