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; }