(PHP 4 >= 4.0.4, PHP 5)
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
roland at mxchange dot org (2011-05-02 19:19:55)
Here is a simple demonstration code to fine prime possibilities. On my 64 bit Linux box I can only go until 61, larger numbers causes warnings due to the EXP number:
<?php
for ($idx = 0; $idx <= 61; $idx++) {
$pow = (gmp_strval(gmp_pow('2', $idx)) - 1);
$prop = gmp_prob_prime($pow);
if ($prop > 0) {
echo 'idx=' . $idx . "\n--------\n";
echo 'pow=' . $pow . "\n";
echo 'prop=' . $prop . "\n------\n";
}
}
?>
By 'pow' is the possible prime number.