gmp_prob_prime
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
gmp_prob_prime — Check if number is "probably prime"
说明
The function uses Miller-Rabin's probabilistic test to check if a number is a prime.
参数
num
-
The number being checked as a prime.
GMP 对象、int 或 string,可以按照跟在 gmp_init() 中使用字符串并自动检测 base(即当 base 等于 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.GMP 对象、int 或 string,可以按照跟在 gmp_init() 中使用字符串并自动检测 base(即当 base 等于 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.
示例
示例 #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 note
<?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
备份地址:http://www.lvesu.com/blog/php/function.gmp-prob-prime.php