void primes() { prime[0]=2; prime[1]=3; count=2; for(int i=5;i<=1000;i+=2){ if(primecheck(i)) prime[count++]=i; } }
static dckey * rw_keygen (size_t nbits, const char *extra) { rw_priv *sk = malloc (sizeof (*sk)); int bit2; if (!sk) return NULL; mpz_init (sk->n); mpz_init (sk->p); mpz_init (sk->q); mpz_init (sk->u); mpz_init (sk->kp); mpz_init (sk->kq); do { random_bigint (sk->p, (nbits+1)/2); mpz_setbit (sk->p, 0); mpz_setbit (sk->p, 1); } while (!primecheck (sk->p)); bit2 = ~mpz_get_ui (sk->p) & 4; do { random_bigint (sk->q, nbits/2); mpz_setbit (sk->q, 0); mpz_setbit (sk->q, 1); if (bit2) mpz_setbit (sk->q, 2); else mpz_clrbit (sk->q, 2); } while (!primecheck (sk->q)); rw_precompute (sk); return &sk->key; }
int quadratic(int target){ int answer; int primes[500]; int i,j,k,m; int a,b; int count = 2; int prime; long long int temp; int primecount; int maxprimes = 0; int maxa,maxb; primes[0]=1; primes[1]=2; for(i=3;i<target;i+=2){ if(primecheck(i)){ primes[count++] = i; } } for(m=0;m<1;m++){ for(i=(-1*target);i<target;i++){ for(j=(-1*target);j<target;j++){ k=0; prime = 1; primecount = 0; if(m==0){ /*a=primes[i];*/ /*b=primes[j];*/ a=i; b=j; } else if(m==1){ /*a=primes[i];*/ /*b=primes[j]*-1;*/ a=i; b=j*-1; } else if(m==2){ /*a=primes[i]*-1;*/ /*b=primes[j];*/ a=i*-1; b=j; } else{ /*a=primes[i]*-1;*/ /*b=primes[j]*-1;*/ a=i*-1; b=j*-1; } while(primecount<200){ temp = (k*k) + (k*a) + b; if(temp<0 || primecheck(temp)==0){ break; } primecount++; k++; } /*printf("%d : %d,%d\n",primecount,a,b);*/ if(primecount>maxprimes){ maxprimes = primecount; maxa = a; maxb = b; } } } } /*for(i=0;i<count;i++){ printf("%d\n",primes[i]); }*/ printf("%d,%d : %d\n",maxa,maxb,maxprimes); answer = maxa*maxb; return answer; }