gmp_prob_prime

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

gmp_prob_primeVerifica se un numero è "probabilmente primo"

Descrizione

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

La funzione utilizza il test probabilistico di Miller-Rabin per verificare se un numero è primo.

Elenco dei parametri

num

Il numero da verificare come primo.

Può essere o una resource numero GMP, oppure una stringa numerica dal momento che è possibile convertire quest'ultimo in un numero.

repetitions

Valori ragionevoli di repetitions variano da 5 a 10 (il valore predefinito è 10); un valore più alto riduce la probabilità che un numero non primo venga considerato "probabilmente" primo.

Può essere o una resource numero GMP, oppure una stringa numerica dal momento che è possibile convertire quest'ultimo in un numero.

Valori restituiti

Se questa funzione restituisce 0, num non è sicuramente primo. Se restituisce 1, allora num è "probabilmente" primo. Se restituisce 2, allora num è sicuramente primo.

Esempi

Example #1 Esempio di gmp_prob_prime()

<?php
// sicuramente non primo
echo gmp_prob_prime("6") . "\n";

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

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

Il precedente esempio visualizzerà:

0
1
2

add a note

User Contributed Notes 1 note

up
3
florin dot ciuica at yahoo dot com
11 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