Определение того, является ли число простым, — распространенная проблема в программировании. В этой статье мы рассмотрим несколько методов проверки простых чисел с помощью PHP. Мы предоставим примеры кода и проверим их эффективность, чтобы помочь вам выбрать наиболее подходящий метод для ваших нужд.
- Метод пробного деления.
Метод пробного деления — один из самых простых способов проверить, является ли число простым. Мы перебираем все числа от 2 до квадратного корня из заданного числа и проверяем делимость.
function isPrime($number)
{
if ($number < 2) {
return false;
}
for ($i = 2; $i <= sqrt($number); $i++) {
if ($number % $i === 0) {
return false;
}
}
return true;
}
- Решето Эратосфена:
Решето Эратосфена — это эффективный алгоритм для поиска всех простых чисел до заданного предела. Мы можем изменить его, чтобы проверить, является ли определенное число простым.
function isPrime($number)
{
if ($number < 2) {
return false;
}
$sieve = array_fill(2, $number - 1, true);
for ($i = 2; $i <= sqrt($number); $i++) {
if ($sieve[$i]) {
for ($j = $i 2; $j <= $number; $j += $i) {
$sieve[$j] = false;
}
}
}
return $sieve[$number];
}
- Тест на простоту Ферма:
Тест на простоту Ферма — это вероятностный алгоритм, который обеспечивает быстрый способ проверить, является ли число простым. Он основан на Малой теореме Ферма.
function isPrime($number, $iterations = 5)
{
if ($number <= 1) {
return false;
}
if ($number <= 3) {
return true;
}
while ($iterations > 0) {
$a = random_int(2, $number - 2);
if (bcpowmod($a, $number - 1, $number) !== '1') {
return false;
}
$iterations--;
}
return true;
}
В этой статье мы рассмотрели три различных метода проверки простых чисел в PHP. Метод пробного деления прост, но может быть медленным для больших чисел. Решето Эратосфена эффективно позволяет найти несколько простых чисел в заданном диапазоне. Тест на простоту Ферма обеспечивает быстрый вероятностный подход. Выберите метод, который лучше всего соответствует вашим конкретным требованиям и размеру чисел, с которыми вы работаете.
Поняв эти методы, вы сможете уверенно проверять простые числа в PHP и оптимизировать свой код для повышения производительности.