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.
gmp_prob_prime
(PHP 4 >= 4.0.4, PHP 5)
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.
Параметри
- a
-
The number being checked as a prime.
Може да бъде или ресурс на GMP число, или числов низ, който може да бъде преобразуван в число.
- 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 число, или числов низ, който може да бъде преобразуван в число.
Връщани стойности
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
