Example #1
0
int miller_rabin(mpz_t n, gmp_randstate_t rand_state,int nb_bases_test)
{
    mpz_t a;
    int i;
    mpz_init(a);
    for(i=0; i<nb_bases_test; i++)
    {
        do { mpz_urandomm(a, rand_state, n); } while (mpz_sgn(a) == 0);
        if (miller_rabin_pass(a, n) == 0)
            { return 0;}
    }
    return 1;
}
int miller_rabin(mpz_t n, gmp_randstate_t rand_state) {
    mpz_t a;
    int repeat;
    mpz_init(a);
    for(repeat=0; repeat<20; repeat++) {
        do {
            mpz_urandomm(a, rand_state, n);
        } while (mpz_sgn(a) == 0);
        if (miller_rabin_pass(a, n) == COMPOSITE) {
            return COMPOSITE;
        }
    }
    return PROBABLE_PRIME;
}