gmp_prob_prime

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

gmp_prob_primeRevisa si el número es "probablemente primo"

Descripción

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

La función usa la prueba probabilística de Miller-Rabin para revisar si un número es primo.

Parámetros

num

El número a ser revisado como primo.

resource de número de GMP en PHP 5.5 y anterior, o un objeto de GMP en PHP 5.6 y posterior, o un string numérico siempre que sea posible convertirlo a un número.

repetitions

Valores rasonables de repetitions varían de 5 a 10 (por defecto siendo 10); un valor superior disminuye la probabilidad para un número no primo a pasar como un "probable" primo.

resource de número de GMP en PHP 5.5 y anterior, o un objeto de GMP en PHP 5.6 y posterior, o un string numérico siempre que sea posible convertirlo a un número.

Valores devueltos

Si ésta función devolvier 0, num es definitivamente no primo. Si devuelve 1, entonces num es "probablemente" primo. si devolviera 2, entonces num es seguramente primo.

Ejemplos

Ejemplo #1 Ejemplo de gmp_prob_prime()

<?php
// definitivamente no primo
echo gmp_prob_prime("6") . "\n";

// probablemente primo
echo gmp_prob_prime("1111111111111111111") . "\n";

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

El resultado del ejemplo sería:

0
1
2

add a note

User Contributed Notes 1 note

up
3
florin dot ciuica at yahoo dot com
10 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: 01 - 1000000     - certain primes found: 78498,    probable: 01 - 10000000    - certain primes found: 78498,    probable: 5860811 - 100000000   - certain primes found: 78498,    probable: 56829571 - 1000000000  - certain primes found: 78498,    probable: 507690361 - 2147483647  - certain primes found: 78498,    probable: 105019067
To Top