#include #include #include #define NTABLES 3 #define TSIZE 50000 #define PLIST 100000 long primes[PLIST], binrep[100]; long int offset[10]={350000001, 400000001, 450000001, 500000001, 550000001, 600000001, 650000001, 700000001, 750000001, 800000001}; char *filenames[10]={"primes350mil_up.fil","primes400mil_up.fil","primes450mil_up.fil","primes500mil_up.fil","primes550mil_up.fil","primes600mil_up.fil","primes650mil_up.fil","primes700mil_up.fil","primes750mil_up.fil","primes800mil_up.fil"}; char *outputs[10]={"np350mil_up.fil","np400mil_up.fil","np450mil_up.fil","np500mil_up.fil","np550mil_up.fil","np600mil_up.fil","np650mil_up.fil","np700mil_up.fil","np750mil_up.fil","np800mil_up.fil"}; long primetest(long n){ int i, primecheck=1; for(i=2; ip) res=power(q, (p-1)/2, p); if(p>q) { res=power(p, (q-1)/2, q); if(p%4==3 && q%4==3) res=q-res; } if(res==1) return 1; else return -1; } //lowest quad nonresidue mod p long Np(long p){ long i; for(i=0; imax) {max=j; maxn=n;} } printf("\n\n\n"); // fclose(out); // fclose(in); fprintf(stderr, "last prime %d got to %d max is %d %d mod %d %d\n", n, i, Np(maxn), primetest(max), maxn, primetest(maxn)); // } }