php[world] 2018 - Call for Speakers

# gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_primeCheck if number is "probably prime"

### Description

int gmp_prob_prime ( resource \$a [, int \$reps = 10 ] )

The function uses Miller-Rabin's probabilistic test to check if a number is a prime.

### Parameters

a

The number being checked as a prime.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

reps

Reasonable values of reps vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

### Return Values

If this function returns 0, a is definitely not prime. If it returns 1, then a is "probably" prime. If it returns 2, then a is surely prime.

### Examples

Example #1 gmp_prob_prime() example

``` <?php// definitely not a primeecho gmp_prob_prime("6") . "\n";// probably a primeecho gmp_prob_prime("1111111111111111111") . "\n";// definitely a primeecho gmp_prob_prime("11") . "\n";?> ```

The above example will output:

```0
1
2
```

``` <?php    \$max = 2147483647;        \$primesFound = 0;    \$probablePrimes = 0;    for (\$x = 1; \$x <= \$max; \$x++) {        \$primeStatus = gmp_prob_prime(\$x);        if (\$primeStatus == 1) {            \$probablePrimes++;        } else if (\$primeStatus == 2) {            \$primesFound++;        }    }    echo "Total primes found: " . \$primesFound . " between 1 and " . \$max . ". Probable primes in this interval: " . \$probablePrimes;?>Based on that the following results were obtained:1 - 100000      - certain primes found: 9592,     probable: 01 - 1000000     - certain primes found: 78498,    probable: 01 - 10000000    - certain primes found: 78498,    probable: 5860811 - 100000000   - certain primes found: 78498,    probable: 56829571 - 1000000000  - certain primes found: 78498,    probable: 507690361 - 2147483647  - certain primes found: 78498,    probable: 105019067 ```