\\ Number of maximal product-free subsets of {1..n}. \\ Main recursive function has the following arguments: \\ k: Indicates elements from 2..k have been picked. \\ b: bitmap of chosen elements. \\ Optimisation: Elements over n\2 can be freely added once k reaches half their value if \\ permitted by the current selection. In fact, for the set to be maximal they must be added. A326496(n)={ my(lim=vector(n, k, sqrtint(k))); my(accept(b,k) = for(i=2, lim[k], if(bittest(b,i) && !(k%i) && bittest(b,k/i), return(0))); 1); my(ismaxl(b)= for(k=2, n\2, if(!bittest(b,k) && accept(b,k), my(f=0); for(i=2, n\k, if((i==k || bittest(b,i)) && bittest(b,k*i), f=1; break)); if(!f, return(0)); )); 1 ); my(recurse(k, b)= for(j=max(2*k,n\2+1), min(2*k+1,n), if(accept(b,j), b += (1< n\2, ismaxl(b), self()(k, b) + if(accept(b,k), self()(k, b + (1<