GMP 函数
在线手册:中文 英文
PHP手册

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_primeCheck 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.

参数

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


GMP 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Check if number is "probably prime"

用户评论:

roland at mxchange dot org (03-May-2011 03:19)

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.