# gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_prob_primeCheck if number is "probably prime"

### Description

gmp_prob_prime(GMP|int|string `\$num`, int `\$repetitions` = 10): int

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

### Parameters

`num`

The number being checked as a prime.

A GMP object, an int or a numeric string.

`repetitions`

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

A GMP object, an int or a numeric string.

### Return Values

If this function returns 0, `num` is definitely not prime. If it returns 1, then `num` is "probably" prime. If it returns 2, then `num` 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
``` add a note

### User Contributed Notes 1 note

florin dot ciuica at yahoo dot com
7 years ago
``` <?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 ``` 