Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить, простое ли число

Короткий ответ

Достаточно проверить делители до квадратного корня из числа:

<?php
 
function isPrime(int $number): bool
{
    if ($number < 2) {
        return false;
    }
 
    for ($divisor = 2; $divisor * $divisor <= $number; $divisor++) {
        if ($number % $divisor === 0) {
            return false;
        }
    }
 
    return true;
}
 
var_dump(isPrime(97), isPrime(91));

Результат:

bool(true)
bool(false)

Все простые числа до N

Отфильтруйте диапазон той же функцией:

<?php
 
function isPrime(int $number): bool
{
    if ($number < 2) {
        return false;
    }
 
    for ($divisor = 2; $divisor * $divisor <= $number; $divisor++) {
        if ($number % $divisor === 0) {
            return false;
        }
    }
 
    return true;
}
 
echo implode(', ', array_filter(range(1, 30), 'isPrime'));

Результат:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29

Функции из этого ответа

  • sqrt — Возвращает квадратный корень числа.
  • range — Создаёт массив с последовательностью значений.
  • array_filter — Оставляет в массиве элементы, прошедшие проверку.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.