PHP Australia Conference 2015

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_primeNombre GMP probablement premier

Description

int gmp_prob_prime ( GMP $a [, int $reps = 10 ] )

La fonction utilise le test de probabilité Miller-Rabin.

Liste de paramètres

a

Le nombre à vérifier.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

reps

reps peut raisonnablement varier de 5 à 10 (par défaut, c'est 10); une valeur supérieure réduit la probabilité qu'un nombre non premier soit identifié comme "probablement" premier.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Si gmp_prob_prime() retourne 0, a est défini comme non premier. Si gmp_prob_prime() retourne 1, alors a est "probablement" premier. Si gmp_prob_prime() retourne 2, alors a est sûrement premier.

Exemples

Exemple #1 Exemple avec gmp_prob_prime()

<?php
// pas premier
echo gmp_prob_prime("6") . "\n";

// probablement premier
echo gmp_prob_prime("1111111111111111111") . "\n";

// premier
echo gmp_prob_prime("11") . "\n";
?>

L'exemple ci-dessus va afficher :

0
1
2

add a note add a note

User Contributed Notes 1 note

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