PHP 5.4.36 Released

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_primeCheck if number is "probably prime"

Descrierea

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.

Parametri

a

The number being checked as a prime.

Un număr GMP sub formă de resource în PHP 5.5 și anterior, un obiect GMP în PHP 5.6 și ultrior, su un șir de caractere numeric atunci când acesta poate fi convertit într-un număr.

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.

Un număr GMP sub formă de resource în PHP 5.5 și anterior, un obiect GMP în PHP 5.6 și ultrior, su un șir de caractere numeric atunci când acesta poate fi convertit într-un număr.

Valorile întoarse

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.

Exemple

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";
?>

Exemplul de mai sus va afișa:

0
1
2

add a note add a note

User Contributed Notes 1 note

up
0
florin dot ciuica at yahoo dot com
2 months 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