文字

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_prob_primeCheck if number is "probably prime"

说明

int gmp_prob_prime ( GMP $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

用户评论:

[#1] qaryas at yahoo dot com [2015-10-17 05:44:56]

GMP module should be installed first for this to work.

[#2] florin dot ciuica at yahoo dot com [2014-09-26 10:00:34]

<?php
    $max 
2147483647;
    
    
$primesFound 0;
    
$probablePrimes 0;

    for (
$x 1$x <= $max$x++) {
        
$primeStatus gmp_prob_prime($x);
        if (
$primeStatus == 1) {
            
$probablePrimes++;
        } else if (
$primeStatus == 2) {
            
$primesFound++;
        }
    }
    echo 
"Total primes found: " $primesFound " between 1 and " $max ". Probable primes in this interval: " $probablePrimes;
?>


Based on that the following results were obtained:

1 - 100000      - certain primes found: 9592,  probable: 0
1 - 1000000     - certain primes found: 78498, probable: 0
1 - 10000000    - certain primes found: 78498, probable: 586081
1 - 100000000   - certain primes found: 78498, probable: 5682957
1 - 1000000000  - certain primes found: 78498, probable: 50769036
1 - 2147483647  - certain primes found: 78498, probable: 105019067

上一篇: 下一篇: