gmp_prob_prime()
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
Check if number is "probably prime"
说明
gmp_prob_prime(GMP$a[,int $reps= 10]): int
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$repsvary 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,$ais definitely not prime. If it returns 1, then$ais "probably" prime. If it returns 2, then$ais surely prime.
范例
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
<?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