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.

PHP 5.5 이전에서 GMP 수 resource나, PHP 5.6 이후에서 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.

PHP 5.5 이전에서 GMP 수 resource나, PHP 5.6 이후에서 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

add a note add a note

User Contributed Notes 1 note

up
4
florin dot ciuica at yahoo dot com
9 years ago
<?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
To Top