©
本文档使用 PHP中文网手册 发布
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
gmp_prob_prime — Check if number is "probably prime"
$a
[, int $reps
= 10
] )The function uses Miller-Rabin's probabilistic test to check if a number is a prime.
a
The number being checked as a prime.
可以是一个 GMP 数据 resouce ,或一个可以转换为数值的字符串。
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.
可以是一个 GMP 数据 resouce ,或一个可以转换为数值的字符串。
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.
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" ;
?>
以上例程会输出:
0 1 2
[#1] qaryas at yahoo dot com [2015-10-17 05:44:56]
GMP module should be installed first for this to work.
[#2] florin dot ciuica at yahoo dot com [2014-09-26 10:00:34]
<?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: 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