PHP workshop for 2 days with Shopware, Sylius, PHPUnit and Codeception in Duisburg

gmp_prob_prime

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

gmp_prob_primeNombre GMP probablement premier

Description

gmp_prob_prime(GMP|int|string $num, int $repetitions = 10): int

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

Liste de paramètres

num

Le nombre à vérifier.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

repetitions

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

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Si gmp_prob_prime() retourne 0, num est défini comme non premier. Si gmp_prob_prime() retourne 1, alors num est "probablement" premier. Si gmp_prob_prime() retourne 2, alors num 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
4
florin dot ciuica at yahoo dot com
7 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