PHP 8.4.2 Released!

gmp_prob_prime

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

gmp_prob_primeПроверяет, является ли число "вероятно простым"

Описание

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

Функция использует тест Миллера-Рабина для определения, является ли число простым.

Список параметров

num

Число, для которого проводится проверка.

Объект GMP, целое число (int) или строка (string), которая интерпретируется как число по той же логике как если бы строка использовалась в функции gmp_init() с автоматическим определением основания системы счисления — когда значение параметра base равно 0.

repetitions

Допустимые значения аргумента repetitions лежат в диапазоне от 5 до 10 (по умолчанию 10); чем больше это число, тем меньше вероятность, что непростые числа пройдут этот тест и определятся, как "возможно простые".

Объект GMP, целое число (int) или строка (string), которая интерпретируется как число по той же логике как если бы строка использовалась в функции gmp_init() с автоматическим определением основания системы счисления — когда значение параметра base равно 0.

Возвращаемые значения

Если функция возвращает 0, num точно не является простым. Если возвращает 1, то num "возможно" простое. Если возвращает 2, то num точно простое.

Примеры

Пример #1 Пример использования gmp_prob_prime()

<?php
// по определению не является простым
echo gmp_prob_prime("6") . "\n";

// возможно простое
echo gmp_prob_prime("1111111111111111111") . "\n";

// по определению простое
echo gmp_prob_prime("11") . "\n";
?>

Результат выполнения приведённого примера:

0
1
2

Добавить

Примечания пользователей 1 note

up
4
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: 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