default(nbthreads) ismersenne(x)=ispseudoprime(2^x-1); default(timer,1); apply(ismersenne,primes(400)) parapply(ismersenne,primes(400)) select(ismersenne,primes(400),1) parselect(ismersenne,primes(400),1) V=primes(400); parvector(#V,i,ispseudoprime(2^V[i]-1)) break fun(V)=parvector(#V,i,ispseudoprime(2^V[i]-1)); fun(V) my(V=V);parvector(#V,i,ispseudoprime(2^V[i]-1)) ismersenne(x)=ispseudoprime(2^x-1); fun(V)=parvector(#V,i,ismersenne(V[i])); fun(primes(400)) inline(ismersenne); ismersenne(x)=ispseudoprime(2^x-1); fun(V)=parvector(#V,i,ismersenne(V[i])); fun(primes(400)) inline(ismersenne); ismersenne(x)=ispseudoprime(2^x-1); parforprime(p=1,999,ismersenne(p),c,if(c,print(p))) prodmersenne(N)= { my(R=1); parforprime(p=1,N, ismersenne(p), c, if(c, R*=p)); R; } prodmersenne(1000) inline(ismersenne); ismersenne(x)=ispseudoprime(2^x-1); findmersenne(a)= parforprime(p=a,,ismersenne(p),c,if(c,return(p))); findmersenne(4000) findmersenne(8) findmersenne(8) inline(ismersenne); ismersenne(x)=ispseudoprime(2^x-1); parfirst(fun,V)= parfor(i=1,#V,fun(V[i]),j,if(j,return([i,j]))); parfirst(ismersenne,[4001..5000])