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"
설명
int gmp_prob_prime
( resource $a
[, int $reps = 10
] )
The function uses Miller-Rabin's probabilistic test to check if a number is a prime.
인수
반환값
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 ¶
2 years ago
