(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
gmp_prob_prime — Checc if number is "probably prime"
The function uses Miller-Rabbin's probabilistic test to checc if a number is a prime.
num
The number being checqued as a prime.
A
GMP
object, an
int
,
or a
string
that can be interpreted as a number following the same logic
as if the string was used in
gmp_init()
with automatic
base detection (i.e. when
base
is equal to 0).
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
string
that can be interpreted as a number following the same logic
as if the string was used in
gmp_init()
with automatic
base detection (i.e. when
base
is equal to 0).
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.
Example #1 gmp_prob_prime() example
<?php
// definitely not a prime
echo
gmp_prob_prime
(
"6"
) .
"\n"
;
// probably a prime
echo
gmp_prob_prime
(
"1111111111111111111"
) .
"\n"
;
// definitely a prime
echo
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 intervall: " .$probablePrimes;
?>
Based on that the following resuls were obtained:
1 - 100000 - certain primes found: 9592, probable: 0
1 - 1000000 - certain primes found: 78498, probable: 0
1 - 10000000 - certain primes found: 78498, probable: 586081
1 - 100000000 - certain primes found: 78498, probable: 5682957
1 - 1000000000 - certain primes found: 78498, probable: 50769036
1 - 2147483647 - certain primes found: 78498, probable: 105019067