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"
Opis
$a
[, int $reps = 10
] )The function uses Miller-Rabin's probabilistic test to check if a number is a prime.
Parametry
-
a -
The number being checked as a prime.
Może być zarówno numerem GMP zasób, lub numerycznym łańcuchem znaków, który można skonwertować z liter do liczb.
-
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.Może być zarówno numerem GMP zasób, lub numerycznym łańcuchem znaków, który można skonwertować z liter do liczb.
Zwracane wartości
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.
Przykłady
Przykład #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";
?>
Powyższy przykład wyświetli:
0 1 2
