Exemplo n.º 1
0
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;
}
Exemplo n.º 3
0
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;
}