/****************************************************************************** * * * FIND CURVES AND SUB-CURVES OF DIRICHLET PRODUCTS OF ZETA FUNCTION ZEROS * * 08/07/18 (dkc) * * * * For 32-bit words and N<=100000, the products of primes either don't * * overflow or still give correct results if they do. * * * ******************************************************************************/ #include <math.h> unsigned int nucheck(unsigned int N, unsigned int power, unsigned int extra, unsigned int subcur, unsigned int tsize, unsigned int *table, unsigned int *skip, unsigned int nope) { unsigned int i,j,k,l,m,n; unsigned long long p,q,r,s,t,u,pth,qth,rth; // use "unsigned long long" for 64-bit words unsigned long long sth,tth; unsigned int N2,N3,N5,N7,N11; N2=N/2+1; N3=N/6+1; N5=N/30+1; N7=N/210+1; N11=N/2310; if ((power==27)&&(extra!=0)) goto fjskip; if ((power==25)&&(extra!=0)) goto fzskip; if ((power==23)&&(extra!=0)) goto caskip; if ((power==21)&&(extra!=0)) goto bmskip; if ((power==19)&&(extra!=0)) goto baskip; if ((power==17)&&(extra!=0)) goto acskip; if ((power==15)&&(extra!=0)) goto gskip; if ((power==13)&&(extra!=0)) goto fskip; if ((power==11)&&(extra!=0)) goto eskip; if ((power==9)&&(extra!=0)) goto dskip; if ((power==7)&&(extra!=0)) goto cskip; if ((power==5)&&(extra!=0)) goto bskip; if ((power==3)&&(extra!=0)) goto askip; for (i=0; i<tsize; i++) { p=table[i]; pth=p; for (j=1; j<power; j++) pth=pth*p; if (N==pth) return(1); if (N<pth) break; } return(0); // // 3 // askip: if (subcur==2) goto agskip; if (subcur==3) goto zjskip; if (subcur==4) goto zoskip; if ((subcur==0)&&(skip[0]!=0)) goto agskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (pth==N) return(1); if (N<pth) break; } if (subcur==1) return(0); agskip: if ((subcur==0)&&(skip[1]!=0)) goto zjskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; for (j=i+1; j<tsize; j++) { q=table[j]; if ((p*q)==N) return(1); if (N<(p*q)) break; } } if (subcur==2) return(0); zjskip: if ((subcur==0)&&(skip[2]!=0)) goto zoskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p; if (pth==N) return(1); if (N<pth) break; } if (subcur==3) return(0); zoskip: if ((subcur==0)&&(skip[3]!=0)) goto zpskip; if (nope!=0) goto zpskip; for (i=0; i<tsize; i++) { p=table[i]; if (p==N) return(1); if (N<p) break; } zpskip: if (skip[19]!=0) return(0); // // 5 // bskip: if (subcur==2) goto ahskip; if (subcur==3) goto zkskip; if ((subcur==0)&&(skip[0]!=0)) goto ahskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (pth==N) return(1); if (N<pth) break; } if (subcur==1) return(0); ahskip: if ((subcur==0)&&(skip[1]!=0)) goto zkskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==2) return(0); zkskip: if ((subcur==0)&&(skip[2]!=0)) goto zqskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (pth==N) return(1); if (N<pth) break; } zqskip: if (skip[19]!=0) return(0); // // 7 // cskip: if (subcur==2) goto afskip; if (subcur==3) goto aiskip; if (subcur==4) goto zlskip; if ((subcur==0)&&(skip[0]!=0)) goto afskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } if (subcur==1) return(0); afskip: if ((subcur==0)&&(skip[1]!=0)) goto aiskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==2) return(0); aiskip: if ((subcur==0)&&(skip[2]!=0)) goto zlskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=p*q; if (N<qth) break; for (k=j+1; k<tsize; k++) { r=table[k]; if ((qth*r)==N) return(1); if (N<(qth*r)) break; } } } if (subcur==3) return(0); zlskip: if ((subcur==0)&&(skip[3]!=0)) goto zrskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } zrskip: if (skip[19]!=0) return(0); // // 9 // dskip: if (subcur==2) goto nskip; if (subcur==3) goto ajskip; if (subcur==4) goto ziskip; if ((subcur==0)&&(skip[0]!=0)) goto nskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } if (subcur==1) return(0); nskip: if ((subcur==0)&&(skip[1]!=0)) goto ajskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==2) return(0); ajskip: if ((subcur==0)&&(skip[2]!=0)) goto ziskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q; if (N<qth) break; if ((pth*qth)==N) return(1); if (N<(pth*qth)) break; } } if (subcur==3) return(0); ziskip: if ((subcur==0)&&(skip[3]!=0)) goto ztskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } ztskip: if (skip[19]!=0) return(0); // // 11 // eskip: if (subcur==2) goto oskip; if (subcur==3) goto pskip; if (subcur==4) goto akskip; if (subcur==5) goto zmskip; if ((subcur==0)&&(skip[0]!=0)) goto oskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; p=p*p*p*pth; if (p==N) return(1); if (N<p) break; } if (subcur==1) return(0); oskip: if ((subcur==0)&&(skip[1]!=0)) goto pskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==2) return(0); pskip: if ((subcur==0)&&(skip[2]!=0)) goto akskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if ((pth*qth)==N) return(1); if (N<(pth*qth)) break; } } if (subcur==3) return(0); akskip: if ((subcur==0)&&(skip[3]!=0)) goto zmskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=pth*q; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if ((qth*r)==N) return(1); if (N<(qth*r)) break; } } } if (subcur==4) return(0); zmskip: if ((subcur==0)&&(skip[4]!=0)) goto yaskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } yaskip: if (skip[18]!=0) return(0); // // 13 // fskip: if (subcur==2) goto qskip; if (subcur==3) goto rskip; if (subcur==4) goto tskip; if (subcur==5) goto uskip; if (subcur==6) goto alskip; if (subcur==7) goto zbskip; if (subcur==8) goto znskip; if ((subcur==0)&&(skip[0]!=0)) goto qskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } if (subcur==1) return(0); qskip: if ((subcur==0)&&(skip[1]!=0)) goto rskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==2) return(0); rskip: if ((subcur==0)&&(skip[2]!=0)) goto tskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if ((pth*qth)==N) return(1); if (N<(pth*qth)) break; } } if (subcur==3) return(0); tskip: if ((subcur==0)&&(skip[3]!=0)) goto uskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=pth*q; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if ((qth*r)==N) return(1); if (N<(qth*r)) break; } } } if (subcur==4) return(0); uskip: if ((subcur==0)&&(skip[4]!=0)) goto alskip; for (i=0; i<tsize; i++) { p=table[i]; if (N5<p) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=p*q; if (N<qth) break; for (k=j+1; k<tsize; k++) { r=table[k]; rth=qth*r; if (N<rth) break; for (l=k+1; l<tsize; l++) { s=table[l]; if ((rth*s)==N) return(1); if (N<(rth*s)) break; } } } } if (subcur==5) return(0); alskip: if ((subcur==0)&&(skip[5]!=0)) return(0); for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q*q; if (N<qth) break; if ((pth*qth)==N) return(1); if (N<(pth*qth)) break; } } if (subcur==6) return(0); zbskip: if ((subcur==0)&&(skip[6]!=0)) goto znskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==7) return(0); znskip: if ((subcur==0)&&(skip[7]!=0)) goto ybskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } ybskip: if (skip[18]!=0) return(0); // // 15 // gskip: if (subcur==8) goto yfskip; if (subcur==7) goto zeskip; if (subcur==6) goto abskip; if (subcur==5) goto lskip; if (subcur==4) goto mskip; if (subcur==3) goto kskip; if (subcur==2) goto amskip; if ((subcur==0)&&(skip[0]!=0)) goto amskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (pth==N) return(1); if (N<pth) break; } if (subcur==1) return(0); amskip: if ((subcur==0)&&(skip[1]!=0)) goto kskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==2) return(0); kskip: if ((subcur==0)&&(skip[2]!=0)) goto mskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; p=p*p*pth; if (N<p) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if ((p*qth)==N) return(1); if (N<(p*qth)) break; } } if (subcur==3) return(0); mskip: if ((subcur==0)&&(skip[3]!=0)) goto lskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if ((qth*r)==N) return(1); if (N<(qth*r)) break; } } } if (subcur==4) return(0); lskip: if ((subcur==0)&&(skip[4]!=0)) goto abskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if ((qth*r)==N) return(1); if (N<(qth*r)) break; } } } if (subcur==5) return(0); abskip: if ((subcur==0)&&(skip[5]!=0)) goto zeskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if ((pth*qth)==N) return(1); if (N<(pth*qth)) break; } } if (subcur==6) return(0); zeskip: if ((subcur==0)&&(skip[6]!=0)) goto yfskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if ((pth*q)==N) return(1); if (N<(pth*q)) break; } } if (subcur==7) return(0); yfskip: if ((subcur==0)&&(skip[7]!=0)) goto ycskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N==pth) return(1); if (N<pth) break; } ycskip: if (skip[18]!=0) return(0); // // 17 // acskip: if (subcur==2) goto adskip; if (subcur==3) goto sskip; if (subcur==4) goto aaskip; if (subcur==5) goto aeskip; if (subcur==6) goto zcskip; if (subcur==7) goto zdskip; if (subcur==8) goto zgskip; if (subcur==9) goto zhskip; if (subcur==10) goto ygskip; if ((subcur==0)&&(skip[0]!=0)) goto adskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (pth==N) return(1); if (N<pth) break; } if (subcur==1) return(0); adskip: if ((subcur==0)&&(skip[1]!=0)) goto sskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if ((pth*qth)==N) return(1); if (N<(pth*qth)) break; } } if (subcur==2) return(0); sskip: if ((subcur==0)&&(skip[2]!=0)) goto aaskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if ((qth*r)==N) return(1); if (N<(qth*r)) break; } } } if (subcur==3) return(0); aaskip: if ((subcur==0)&&(skip[3]!=0)) goto aeskip; for (i=0; i<tsize; i++) { p=table[i]; if (N5<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if ((rth*s)==N) return(1); if (N<(rth*s)) break; } } } } if (subcur==4) return(0); aeskip: if ((subcur==0)&&(skip[4]!=0)) goto zcskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if ((pth*qth)==N) return(1); if (N<(pth*qth)) break; } } if (subcur==5) return(0); zcskip: if ((subcur==0)&&(skip[5]!=0)) goto zdskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==6) return(0); zdskip: if ((subcur==0)&&(skip[6]!=0)) goto zgskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==7) return(0); zgskip: if ((subcur==0)&&(skip[7]!=0)) goto zhskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==8) return(0); zhskip: if ((subcur==0)&&(skip[8]!=0)) goto ygskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==9) return(0); ygskip: if ((subcur==0)&&(skip[9]!=0)) goto ydskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N==pth) return(1); if (N<pth) break; } ydskip: if (skip[18]!=0) return(0); // // p=19 // baskip: if (subcur==2) goto bbskip; if (subcur==3) goto bcskip; if (subcur==4) goto bdskip; if (subcur==5) goto beskip; if (subcur==6) goto bfskip; if (subcur==7) goto bgskip; if (subcur==8) goto bhskip; if (subcur==9) goto biskip; if (subcur==10) goto bjskip; if (subcur==11) goto bkskip; if (subcur==12) goto blskip; if (subcur==13) goto zsskip; if (subcur==14) goto buskip; if (subcur==15) goto bvskip; if (subcur==16) goto bwskip; if (subcur==17) goto bxskip; if (subcur==18) goto yhskip; if ((subcur==0)&&(skip[0]!=0)) goto bbskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; p=p*p*p*p*pth; if (p==N) return(1); if (N<p) break; } if (subcur==1) return(0); bbskip: if ((subcur==0)&&(skip[1]!=0)) goto bcskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==2) return(0); bcskip: if ((subcur==0)&&(skip[2]!=0)) goto bdskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==3) return(0); bdskip: if ((subcur==0)&&(skip[3]!=0)) goto beskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==4) return(0); beskip: if ((subcur==0)&&(skip[4]!=0)) goto bfskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==5) return(0); bfskip: if ((subcur==0)&&(skip[5]!=0)) goto bgskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=j+1; k<tsize; k++) { r=table[k]; rth=r*r; if (N<rth) break; if (N==(rth*qth)) return(1); if (N<(rth*qth)) break; } } } if (subcur==6) return(0); bgskip: if ((subcur==0)&&(skip[6]!=0)) goto bhskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==7) return(0); bhskip: if ((subcur==0)&&(skip[7]!=0)) goto biskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==8) return(0); biskip: if ((subcur==0)&&(skip[8]!=0)) goto bjskip; for (i=0; i<tsize; i++) { p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N==sth) return(1); if (N<sth) break; } } } } if (subcur==9) return(0); bjskip: if ((subcur==0)&&(skip[9]!=0)) goto bkskip; for (i=0; i<tsize; i++) { p=table[i]; if (N7<p) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=p*q; if (N<qth) break; for (k=j+1; k<tsize; k++) { r=table[k]; rth=r*qth; if (N<rth) break; for (l=k+1; l<tsize; l++) { s=table[l]; sth=s*rth; if (N<sth) break; for (m=l+1; m<tsize; m++) { t=table[m]; tth=t*sth; if (N==tth) return(1); if (N<tth) break; } } } } } if (subcur==10) return(0); bkskip: if ((subcur==0)&&(skip[10]!=0)) goto blskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==11) return(0); blskip: if ((subcur==0)&&(skip[11]!=0)) goto zsskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==12) return(0); zsskip: if ((subcur==0)&&(skip[12]!=0)) goto buskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==13) return(0); buskip: if ((subcur==0)&&(skip[13]!=0)) goto bvskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==14) return(0); bvskip: if ((subcur==0)&&(skip[14]!=0)) goto bwskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==15) return(0); bwskip: if ((subcur==0)&&(skip[15]!=0)) goto bxskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==16) return(0); bxskip: if ((subcur==0)&&(skip[16]!=0)) goto yhskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==17) return(0); yhskip: if ((subcur==0)&&(skip[17]!=0)) goto yeskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N==pth) return(1); if (N<pth) break; } yeskip: if (skip[18]!=0) return(0); // // 21 // bmskip: if (subcur==2) goto bnskip; if (subcur==3) goto boskip; if (subcur==4) goto bpskip; if (subcur==5) goto bqskip; if (subcur==6) goto brskip; if (subcur==7) goto bsskip; if (subcur==8) goto btskip; if (subcur==9) goto byskip; if (subcur==10) goto bzskip; if (subcur==11) goto buzskip; if (subcur==12) goto yiskip; if ((subcur==0)&&(skip[0]!=0)) goto bnskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(qth*rth)) return(1); if (N<(pth*rth)) break; } } } if (subcur==1) return(0); bnskip: if ((subcur==0)&&(skip[1]!=0)) goto boskip; for (i=0; i<tsize; i++) { p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N==sth) return(1); if (N<sth) break; } } } } if (subcur==2) return(0); boskip: if ((subcur==0)&&(skip[2]!=0)) goto bpskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==3) return(0); bpskip: if ((subcur==0)&&(skip[3]!=0)) goto bqskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==4) return(0); bqskip: if ((subcur==0)&&(skip[4]!=0)) goto brskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==5) return(0); brskip: if ((subcur==0)&&(skip[5]!=0)) goto bsskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(q*pth)) return(1); if (N<(q*pth)) break; } } if (subcur==6) return(0); bsskip: if ((subcur==0)&&(skip[6]!=0)) goto btskip; for (i=0; i<tsize; i++) { p=table[i]; if (N5<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(rth*s)) return(1); if (N<(rth*s)) break; } } } } if (subcur==7) return(0); btskip: if ((subcur==0)&&(skip[7]!=0)) goto byskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(q*pth)) return(1); if (N<(q*pth)) break; } } if (subcur==8) return(0); byskip: if ((subcur==0)&&(skip[8]!=0)) goto bzskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==9) return(0); bzskip: if ((subcur==0)&&(skip[9]!=0)) goto buzskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==10) return(0); buzskip: if ((subcur==0)&&(skip[10]!=0)) goto yiskip; for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*pth; if (N==pth) return(1); if (N<pth) break; } if (subcur==11) return(0); yiskip: if ((subcur==0)&&(skip[11]!=0)) return(0); for (i=0; i<tsize; i++) { p=table[i]; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N==pth) return(1); if (N<pth) break; } return(0); // // 23 // caskip: if (subcur==22) goto duskip; if (subcur==21) goto dtskip; if (subcur==20) goto dsskip; if (subcur==19) goto drskip; if (subcur==18) goto dqskip; if (subcur==17) goto dpskip; if (subcur==16) goto doskip; if (subcur==15) goto dnskip; if (subcur==14) goto dmskip; if (subcur==13) goto dlskip; if (subcur==12) goto dkskip; if (subcur==11) goto djskip; if (subcur==10) goto diskip; if (subcur==9) goto dhskip; if (subcur==8) goto dgskip; if (subcur==7) goto dfskip; if (subcur==6) goto deskip; if (subcur==5) goto ddskip; if (subcur==4) goto dcskip; if (subcur==3) goto dbskip; if (subcur==2) goto daskip; if ((subcur==0)&&(skip[0]!=0)) goto daskip; for (i=0; i<tsize; i++) { p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==1) return(0); daskip: if ((subcur==0)&&(skip[1]!=0)) goto dbskip; for (i=0; i<tsize; i++) { p=table[i]; if (N7<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N<sth) break; for (m=0; m<tsize; m++) { if (i==m) continue; if (j==m) continue; if (k==m) continue; if (l==m) continue; t=table[m]; if (N==(t*sth)) return(1); if (N<(t*sth)) break; } } } } } if (subcur==2) return(0); dbskip: if ((subcur==0)&&(skip[2]!=0)) goto dcskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(qth*rth)) return(1); if (N<(qth*rth)) break; } } } if (subcur==3) return(0); dcskip: if ((subcur==0)&&(skip[3]!=0)) goto ddskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==4) return(0); ddskip: if ((subcur==0)&&(skip[4]!=0)) goto deskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N==(qth*rth)) return(1); if (N<(qth*rth)) break; } } } if (subcur==5) return(0); deskip: if ((subcur==0)&&(skip[5]!=0)) goto dfskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==6) return(0); dfskip: if ((subcur==0)&&(skip[6]!=0)) goto dgskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==7) return(0); dgskip: if ((subcur==0)&&(skip[7]!=0)) goto dhskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==8) return(0); dhskip: if ((subcur==0)&&(skip[8]!=0)) goto diskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==9) return(0); diskip: if ((subcur==0)&&(skip[9]!=0)) goto djskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==10) return(0); djskip: if ((subcur==0)&&(skip[10]!=0)) goto dkskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==11) return(0); dkskip: if ((subcur==0)&&(skip[11]!=0)) goto dlskip; for (i=0; i<tsize; i++) { p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==12) return(0); dlskip: if ((subcur==0)&&(skip[12]!=0)) goto dmskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==13) return(0); dmskip: if ((subcur==0)&&(skip[13]!=0)) goto dnskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==14) return(0); dnskip: if ((subcur==0)&&(skip[14]!=0)) goto doskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==15) return(0); doskip: if ((subcur==0)&&(skip[15]!=0)) goto dpskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==16) return(0); dpskip: if ((subcur==0)&&(skip[16]!=0)) goto dqskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==17) return(0); dqskip: if ((subcur==0)&&(skip[17]!=0)) goto drskip; for (i=0; i<tsize; i++) { p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==18) return(0); drskip: if ((subcur==0)&&(skip[18]!=0)) goto dsskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==19) return(0); dsskip: if ((subcur==0)&&(skip[19]!=0)) goto dtskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==20) return(0); dtskip: if ((subcur==0)&&(skip[20]!=0)) goto duskip; for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==21) return(0); duskip: if ((subcur==0)&&(skip[21]!=0)) return(0); for (i=0; i<tsize; i++) { p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } return(0); // // 25 // fzskip: if (subcur==27) goto ezskip; if (subcur==26) goto eyskip; if (subcur==25) goto exskip; if (subcur==24) goto ewskip; if (subcur==23) goto evskip; if (subcur==22) goto euskip; if (subcur==21) goto etskip; if (subcur==20) goto esskip; if (subcur==19) goto erskip; if (subcur==18) goto eqskip; if (subcur==17) goto epskip; if (subcur==16) goto eoskip; if (subcur==15) goto enskip; if (subcur==14) goto emskip; if (subcur==13) goto elskip; if (subcur==12) goto ekskip; if (subcur==11) goto ejskip; if (subcur==10) goto eiskip; if (subcur==9) goto ehskip; if (subcur==8) goto egskip; if (subcur==7) goto efskip; if (subcur==6) goto eeskip; if (subcur==5) goto edskip; if (subcur==4) goto ecskip; if (subcur==3) goto ebskip; if (subcur==2) goto easkip; if ((subcur==0)&&(skip[0]!=0)) goto easkip; for (i=0; i<tsize; i++) { // p^4q^2rs p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==1) return(0); easkip: if ((subcur==0)&&(skip[1]!=0)) goto ebskip; for (i=0; i<tsize; i++) { // p^3qrst p=table[i]; if (N7<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N<sth) break; for (m=0; m<tsize; m++) { if (i==m) continue; if (j==m) continue; if (k==m) continue; if (l==m) continue; t=table[m]; if (N==(t*sth)) return(1); if (N<(t*sth)) break; } } } } } if (subcur==2) return(0); ebskip: if ((subcur==0)&&(skip[2]!=0)) goto ecskip; for (i=0; i<tsize; i++) { // p^4q^3r^2 p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(qth*rth)) return(1); if (N<(qth*rth)) break; } } } if (subcur==3) return(0); ecskip: if ((subcur==0)&&(skip[3]!=0)) goto edskip; for (i=0; i<tsize; i++) { // p^6q^3r p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==4) return(0); edskip: if ((subcur==0)&&(skip[4]!=0)) goto eeskip; for (i=0; i<tsize; i++) { // p^5q^2r^2 p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N==(qth*rth)) return(1); if (N<(qth*rth)) break; } } } if (subcur==5) return(0); eeskip: if ((subcur==0)&&(skip[5]!=0)) goto efskip; for (i=0; i<tsize; i++) { // p^12qr p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==6) return(0); efskip: if ((subcur==0)&&(skip[6]!=0)) goto egskip; for (i=0; i<tsize; i++) { // p^13q^2 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==7) return(0); egskip: if ((subcur==0)&&(skip[7]!=0)) goto ehskip; for (i=0; i<tsize; i++) { // p^10q^3 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==8) return(0); ehskip: if ((subcur==0)&&(skip[8]!=0)) goto eiskip; for (i=0; i<tsize; i++) { // p^9q^4 p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==9) return(0); eiskip: if ((subcur==0)&&(skip[9]!=0)) goto ejskip; for (i=0; i<tsize; i++) { // p^8q^5 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==10) return(0); ejskip: if ((subcur==0)&&(skip[10]!=0)) goto ekskip; for (i=0; i<tsize; i++) { // p^8q^2r p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==11) return(0); ekskip: if ((subcur==0)&&(skip[11]!=0)) goto elskip; for (i=0; i<tsize; i++) { // p^6qrs p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=k+1; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==12) return(0); elskip: if ((subcur==0)&&(skip[12]!=0)) goto emskip; for (i=0; i<tsize; i++) { // pqrstu p=table[i]; if (N11<p) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*p; if (N<qth) break; for (k=j+1; k<tsize; k++) { r=table[k]; rth=r*qth; if (N<rth) break; for (l=k+1; l<tsize; l++) { s=table[l]; sth=s*rth; if (N<sth) break; for (m=l+1; m<tsize; m++) { t=table[m]; tth=t*sth; if (N<tth) break; for (n=m+1; n<tsize; n++) { u=table[n]; if (N==(u*tth)) return(1); if (N<(u*tth)) break; } } } } } } if (subcur==13) return(0); emskip: if ((subcur==0)&&(skip[13]!=0)) goto enskip; for (i=0; i<tsize; i++) { // p^6q^6 p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==14) return(0); enskip: if ((subcur==0)&&(skip[14]!=0)) goto eoskip; for (i=0; i<tsize; i++) { // p^3q^3r^3 p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=j+1; k<tsize; k++) { r=table[k]; rth=r*r*r; if (N<rth) break; if (N==(qth*rth)) return(1); if (N<(qth*rth)) break; } } } if (subcur==15) return(0); eoskip: if ((subcur==0)&&(skip[15]!=0)) goto epskip; for (i=0; i<tsize; i++) { // p^2q^2r^2s p=table[i]; if (N5<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; rth=rth*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==16) return(0); epskip: if ((subcur==0)&&(skip[16]!=0)) goto eqskip; for (i=0; i<tsize; i++) { // p^19q p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N<q) break; if (N==(q*pth)) return(1); if (N<(q*pth)) break; } } if (subcur==17) return(0); eqskip: if ((subcur==0)&&(skip[17]!=0)) goto erskip; for (i=0; i<tsize; i++) { // p^7q^3r p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==18) return(0); erskip: if ((subcur==0)&&(skip[18]!=0)) goto esskip; for (i=0; i<tsize; i++) { // p^6q^2r^2 p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(qth*rth)) return(1); if (N<(qth*rth)) break; } } } if (subcur==19) return(0); esskip: if ((subcur==0)&&(skip[19]!=0)) goto etskip; for (i=0; i<tsize; i++) { // p^9q^2r p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=pth*qth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } if (subcur==20) return(0); etskip: if ((subcur==0)&&(skip[20]!=0)) goto euskip; for (i=0; i<tsize; i++) { // p^3q^3rs p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==21) return(0); euskip: if ((subcur==0)&&(skip[21]!=0)) goto evskip; for (i=0; i<tsize; i++) { // p^7qrs p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==22) return(0); evskip: if ((subcur==0)&&(skip[22]!=0)) goto ewskip; for (i=0; i<tsize; i++) { // p^7q^6 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*q*qth; if (N<qth) break; if (N==(qth*pth)) return(1); if (N<(qth*pth)) break; } } if (subcur==23) return(0); ewskip: if ((subcur==0)&&(skip[23]!=0)) goto exskip; for (i=0; i<tsize; i++) { // p^10q^4 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(qth*pth)) return(1); if (N<(qth*pth)) break; } } if (subcur==24) return(0); exskip: if ((subcur==0)&&(skip[24]!=0)) goto eyskip; for (i=0; i<tsize; i++) { // p^11q^3 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if (N==(qth*pth)) return(1); if (N<(qth*pth)) break; } } if (subcur==25) return(0); eyskip: if ((subcur==0)&&(skip[25]!=0)) goto ezskip; for (i=0; i<tsize; i++) { // p^14q^2 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(qth*pth)) return(1); if (N<(qth*pth)) break; } } if (subcur==26) return(0); ezskip: if ((subcur==0)&&(skip[26]!=0)) return(0); for (i=0; i<tsize; i++) { // p^13qr p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(qth*r)) return(1); if (N<(qth*r)) break; } } } return(0); // // 27 // fjskip: if (subcur==35) goto gsskip; if (subcur==34) goto grskip; if (subcur==33) goto gqskip; if (subcur==32) goto gpskip; if (subcur==31) goto goskip; if (subcur==30) goto gnskip; if (subcur==29) goto gmskip; if (subcur==28) goto glskip; if (subcur==27) goto gkskip; if (subcur==26) goto gjskip; if (subcur==25) goto giskip; if (subcur==24) goto ghskip; if (subcur==23) goto ggskip; if (subcur==22) goto gfskip; if (subcur==21) goto geskip; if (subcur==20) goto gdskip; if (subcur==19) goto gcskip; if (subcur==18) goto gbskip; if (subcur==17) goto gaskip; if (subcur==16) goto fhskip; if (subcur==15) goto fgskip; if (subcur==14) goto ffskip; if (subcur==13) goto feskip; if (subcur==12) goto fdskip; if (subcur==11) goto fcskip; if (subcur==10) goto fbskip; if (subcur==9) goto faskip; if (subcur==8) goto fiskip; if (subcur==7) goto fyskip; if (subcur==6) goto fxskip; if (subcur==5) goto fwskip; if (subcur==4) goto fvskip; if (subcur==3) goto fuskip; if (subcur==2) goto ftskip; if ((subcur==0)&&(skip[0]!=0)) goto ftskip; for (i=0; i<tsize; i++) { // p^5q^2rs p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==1) return(0); ftskip: if ((subcur==0)&&(skip[1]!=0)) goto fuskip; for (i=0; i<tsize; i++) { // p^3q^2r^2s p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; rth=rth*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==2) return(0); fuskip: if ((subcur==0)&&(skip[2]!=0)) goto fvskip; for (i=0; i<tsize; i++) { // p^8qrs p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==3) return(0); fvskip: if ((subcur==0)&&(skip[3]!=0)) goto fwskip; for (i=0; i<tsize; i++) { // p^2q^2rst p=table[i]; if (N7<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N<sth) break; for (m=0; m<tsize; m++) { if (i==m) continue; if (j==m) continue; if (k==m) continue; if (l==m) continue; t=table[m]; if (N==(t*sth)) return(1); if (N<(t*sth)) break; } } } } } if (subcur==4) return(0); fwskip: if ((subcur==0)&&(skip[4]!=0)) goto fxskip; for (i=0; i<tsize; i++) { // p^10q^2r p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==5) return(0); fxskip: if ((subcur==0)&&(skip[5]!=0)) goto fyskip; for (i=0; i<tsize; i++) { // p^8q^3r p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==6) return(0); fyskip: if ((subcur==0)&&(skip[6]!=0)) goto fiskip; for (i=0; i<tsize; i++) { // p^5q^3r^2 p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(rth*qth)) return(1); if (N<(rth*qth)) break; } } } if (subcur==7) return(0); fiskip: if ((subcur==0)&&(skip[7]!=0)) goto faskip; for (i=0; i<tsize; i++) { // p^7q^2r^2 p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(rth*qth)) return(1); if (N<(rth*qth)) break; } } } if (subcur==8) return(0); faskip: if ((subcur==0)&&(skip[8]!=0)) goto fbskip; for (i=0; i<tsize; i++) { // p^14qr p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==9) return(0); fbskip: if ((subcur==0)&&(skip[9]!=0)) goto fcskip; for (i=0; i<tsize; i++) { // p^12q^3 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==10) return(0); fcskip: if ((subcur==0)&&(skip[10]!=0)) goto fdskip; for (i=0; i<tsize; i++) { // p^11q^4 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==11) return(0); fdskip: if ((subcur==0)&&(skip[11]!=0)) goto feskip; for (i=0; i<tsize; i++) { // p^9q^5 p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==12) return(0); feskip: if ((subcur==0)&&(skip[12]!=0)) goto ffskip; for (i=0; i<tsize; i++) { // p^8q^3 p=table[i]; if (N2<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=q*q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==13) return(0); ffskip: if ((subcur==0)&&(skip[13]!=0)) goto fgskip; for (i=0; i<tsize; i++) { // p^15q^2 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==14) return(0); fgskip: if ((subcur==0)&&(skip[14]!=0)) goto fhskip; for (i=0; i<tsize; i++) { // p^19q p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N==(pth*q)) return(1); if (N<(pth*q)) break; } } if (subcur==15) return(0); fhskip: if ((subcur==0)&&(skip[15]!=0)) goto gaskip; for (i=0; i<tsize; i++) { // p^7q^7 p=table[i]; if (N2<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q*q*q; if (N<qth) break; qth=q*q*q*qth; if (N<qth) break; if (N==(pth*qth)) return(1); if (N<(pth*qth)) break; } } if (subcur==16) return(0); gaskip: if ((subcur==0)&&(skip[16]!=0)) goto gbskip; for (i=0; i<tsize; i++) { // p^9qrs p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==17) return(0); gbskip: if ((subcur==0)&&(skip[17]!=0)) goto gcskip; for (i=0; i<tsize; i++) { // p^3q^2rst p=table[i]; if (N7<p) break; pth=p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N<sth) break; for (m=0; m<tsize; m++) { if (i==m) continue; if (j==m) continue; if (k==m) continue; if (l==m) continue; t=table[m]; if (N==(t*sth)) return(1); if (N<(t*sth)) break; } } } } } if (subcur==18) return(0); gcskip: if ((subcur==0)&&(skip[18]!=0)) goto gdskip; for (i=0; i<tsize; i++) { // p^11q^2r p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==19) return(0); gdskip: if ((subcur==0)&&(skip[19]!=0)) goto geskip; for (i=0; i<tsize; i++) { // p^9q^3r p=table[i]; if (N3<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==20) return(0); geskip: if ((subcur==0)&&(skip[20]!=0)) goto gfskip; for (i=0; i<tsize; i++) { // p^8q^2r^2 p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(rth*qth)) return(1); if (N<(rth*qth)) break; } } } if (subcur==21) return(0); gfskip: if ((subcur==0)&&(skip[21]!=0)) goto ggskip; for (i=0; i<tsize; i++) { // p^7q^3r^2 p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; if (N==(rth*qth)) return(1); if (N<(rth*qth)) break; } } } if (subcur==22) return(0); ggskip: if ((subcur==0)&&(skip[22]!=0)) goto ghskip; for (i=0; i<tsize; i++) { // p^6q^2rs p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==23) return(0); ghskip: if ((subcur==0)&&(skip[23]!=0)) goto giskip; for (i=0; i<tsize; i++) { // p^4q^2r^2s p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; rth=rth*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==24) return(0); giskip: if ((subcur==0)&&(skip[24]!=0)) goto gjskip; for (i=0; i<tsize; i++) { // p^2q^2r^2s^2 p=table[i]; if (N5<p) break; pth=p*p; if (N<pth) break; for (j=i+1; j<tsize; j++) { q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=j+1; k<tsize; k++) { r=table[k]; rth=r*r; if (N<rth) break; rth=rth*qth; if (N<rth) break; for (l=k+1; l<tsize; l++) { s=table[l]; sth=s*s; if (N<sth) break; if (N==(sth*rth)) return(1); if (N<(sth*rth)) break; } } } } if (subcur==25) return(0); gjskip: if ((subcur==0)&&(skip[25]!=0)) goto gkskip; for (i=0; i<tsize; i++) { // p^14qr p=table[i]; if (N3<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; if (N<q) break; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; if (N==(r*qth)) return(1); if (N<(r*qth)) break; } } } if (subcur==26) return(0); gkskip: if ((subcur==0)&&(skip[26]!=0)) goto glskip; for (i=0; i<tsize; i++) { // p^4qrst p=table[i]; if (N7<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N<sth) break; for (m=0; m<tsize; m++) { if (i==m) continue; if (j==m) continue; if (k==m) continue; if (l==m) continue; t=table[m]; if (N==(t*sth)) return(1); if (N<(t*sth)) break; } } } } } if (subcur==27) return(0); glskip: if ((subcur==0)&&(skip[27]!=0)) goto gmskip; for (i=0; i<tsize; i++) { // p^2q^2r^2st p=table[i]; if (N7<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; rth=rth*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N<sth) break; for (m=0; m<tsize; m++) { if (i==m) continue; if (j==m) continue; if (k==m) continue; if (l==m) continue; t=table[m]; if (N==(t*sth)) return(1); if (N<(t*sth)) break; } } } } } if (subcur==28) return(0); gmskip: if ((subcur==0)&&(skip[28]!=0)) goto gnskip; for (i=0; i<tsize; i++) { // p^2qrstu p=table[i]; if (N11<p) break; pth=p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; sth=s*rth; if (N<sth) break; for (m=0; m<tsize; m++) { if (i==m) continue; if (j==m) continue; if (k==m) continue; if (l==m) continue; t=table[m]; tth=t*sth; if (N<tth) break; for (n=0; n<tsize; n++) { if (i==n) continue; if (j==n) continue; if (k==n) continue; if (l==n) continue; if (m==n) continue; u=table[n]; if (N==(u*tth)) return(1); if (N<(u*tth)) break; } } } } } } if (subcur==29) return(0); gnskip: if ((subcur==0)&&(skip[29]!=0)) goto goskip; for (i=0; i<tsize; i++) { // p^5q^2r^2s p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; rth=rth*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==30) return(0); goskip: if ((subcur==0)&&(skip[30]!=0)) goto gpskip; for (i=0; i<tsize; i++) { // p^5q^3rs p=table[i]; if (N5<p) break; pth=p*p*p; if (N<pth) break; pth=p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==31) return(0); gpskip: if ((subcur==0)&&(skip[31]!=0)) goto gqskip; for (i=0; i<tsize; i++) { // p^4q^3rs p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==32) return(0); gqskip: if ((subcur==0)&&(skip[32]!=0)) goto grskip; for (i=0; i<tsize; i++) { // p^4q^4rs p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q*q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==33) return(0); grskip: if ((subcur==0)&&(skip[33]!=0)) goto gsskip; for (i=0; i<tsize; i++) { // p^4q^2r^2s p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*r; if (N<rth) break; rth=rth*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } if (subcur==34) return(0); gsskip: if ((subcur==0)&&(skip[34]!=0)) return(0); for (i=0; i<tsize; i++) { // p^7q^2rs p=table[i]; if (N5<p) break; pth=p*p*p*p; if (N<pth) break; pth=p*p*p*pth; if (N<pth) break; for (j=0; j<tsize; j++) { if (i==j) continue; q=table[j]; qth=q*q; if (N<qth) break; qth=qth*pth; if (N<qth) break; for (k=0; k<tsize; k++) { if (i==k) continue; if (j==k) continue; r=table[k]; rth=r*qth; if (N<rth) break; for (l=0; l<tsize; l++) { if (i==l) continue; if (j==l) continue; if (k==l) continue; s=table[l]; if (N==(s*rth)) return(1); if (N<(s*rth)) break; } } } } return(0); }