Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static F1(jtprime1){A d,t,y,z;B*b,*u;I c,*dv,e,i,j,k,m,n,p,q,*wv,x,*zv;
- RZ(w);
- k=0; n=AN(w); wv=AV(w); RE(m=sup(n,wv)); jt->rank=0; JBREAK0;
- GA(z,INT,n,AR(w),AS(w)); zv= AV(z);
- RZ(d=grade1(ravel(w))); dv= AV(d);
- if(p4792){I*u=AV(p4792); c=AN(p4792); while(n>k&&c>(x=wv[dv[k]]))zv[dv[k++]]=u[x];}
- else{
- while(n>k&&0==wv[dv[k]])zv[dv[k++]]=2;
- while(n>k&&1==wv[dv[k]])zv[dv[k++]]=3;
- while(n>k&&2==wv[dv[k]])zv[dv[k++]]=5;
- }
- if(n==k)R z;
- j=3; p=0; e=PT; q=1+(I)sqrt((D)m); x=wv[dv[k]];
- GA(t,B01,q,1,0); u=BAV(t); sieve(0L,q,u,u);
- GA(y,B01,MIN(m,MM),1,0); b=BAV(y);
- for(;0<=p&&p<m;p+=q){
- if(x>=e){c=x/PT; e=PT*(1+c); c=MIN(c,ptn); if(j<c*PT){j=c*PT; p=ptt[c-1];}}
- JBREAK0; q=MIN(MM,m-p); sieve(p,q,b,u); c=j+q/3;
- if(x>c)for(i=1-p%2;i<q;i+=2)j+=b[i];
- else for(i=1-p%2;i<q;i+=2)
- if(b[i]){while(j==x){zv[dv[k++]]=i+p; if(n==k)R z; x=wv[dv[k]];} ++j;}
- }
- while(n>k)zv[dv[k++]]=p; R z;
- }
Advertisement
Add Comment
Please, Sign In to add comment