Dutch PHP Conference 2025 - Call For Papers

gmp_prob_prime

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

gmp_prob_primeCheck if number is "probably prime"

Опис

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

The function uses Miller-Rabin's probabilistic test to check if a number is a prime.

Параметри

num

The number being checked as a prime.

GMP-номер типу resource в PHP 5.5 та старіших версіях, об'єкт GMP в PHP 5.6 та новіших, або ж числовий рядок за можливості перетворення останнього на число.

repetitions

Reasonable values of repetitions vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

GMP-номер типу resource в PHP 5.5 та старіших версіях, об'єкт GMP в PHP 5.6 та новіших, або ж числовий рядок за можливості перетворення останнього на число.

Значення, що повертаються

If this function returns 0, num is definitely not prime. If it returns 1, then num is "probably" prime. If it returns 2, then num is surely prime.

Приклади

Приклад #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";
?>

Поданий вище приклад виведе:

0
1
2

add a note

User Contributed Notes 1 note

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