Wolfos

Untitled

Nov 25th, 2014
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.92 KB | None | 0 0
  1. 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;
  2.  RZ(w);
  3.  k=0; n=AN(w); wv=AV(w); RE(m=sup(n,wv)); jt->rank=0; JBREAK0;
  4.  GA(z,INT,n,AR(w),AS(w)); zv= AV(z);
  5.  RZ(d=grade1(ravel(w)));  dv= AV(d);
  6.  if(p4792){I*u=AV(p4792); c=AN(p4792); while(n>k&&c>(x=wv[dv[k]]))zv[dv[k++]]=u[x];}
  7.  else{
  8.   while(n>k&&0==wv[dv[k]])zv[dv[k++]]=2;
  9.   while(n>k&&1==wv[dv[k]])zv[dv[k++]]=3;
  10.   while(n>k&&2==wv[dv[k]])zv[dv[k++]]=5;
  11.  }
  12.  if(n==k)R z;
  13.  j=3; p=0; e=PT; q=1+(I)sqrt((D)m); x=wv[dv[k]];
  14.  GA(t,B01,q,1,0);         u=BAV(t); sieve(0L,q,u,u);
  15.  GA(y,B01,MIN(m,MM),1,0); b=BAV(y);
  16.  for(;0<=p&&p<m;p+=q){
  17.   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];}}
  18.   JBREAK0; q=MIN(MM,m-p); sieve(p,q,b,u); c=j+q/3;
  19.   if(x>c)for(i=1-p%2;i<q;i+=2)j+=b[i];
  20.   else   for(i=1-p%2;i<q;i+=2)
  21.    if(b[i]){while(j==x){zv[dv[k++]]=i+p; if(n==k)R z; x=wv[dv[k]];} ++j;}
  22.  }
  23.  while(n>k)zv[dv[k++]]=p; R z;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment