Изучение различных методов генерации первых 100 простых чисел в PHP

Простые числа играют решающую роль во многих областях информатики и математики. В этой статье мы рассмотрим различные методы генерации первых 100 простых чисел с помощью PHP. Мы рассмотрим различные алгоритмы и примеры кода для эффективного выполнения этой задачи. Итак, начнем!

Метод 1: метод грубой силы
Метод грубой силы включает в себя проверку каждого числа по отдельности, чтобы определить, является ли оно простым. Мы перебираем числа, начиная с 2, и проверяем, делится ли каждое число на любое число, меньшее самого себя.

function isPrime($number)
{
    if ($number == 1) {
        return false;
    }

    for ($i = 2; $i <= sqrt($number); $i++) {
        if ($number % $i == 0) {
            return false;
        }
    }

    return true;
}
$count = 0;
$number = 2;
$primes = [];
while ($count < 100) {
    if (isPrime($number)) {
        $primes[] = $number;
        $count++;
    }

    $number++;
}
print_r($primes);

Метод 2: Решето Эратосфена
Решето Эратосфена — это эффективный алгоритм для поиска всех простых чисел до заданного предела. Он работает путем итеративной маркировки кратных каждого простого числа, начиная с 2, как составных (т. е. не простых).

function sieveOfEratosthenes($limit)
{
    $primes = [];
    $isPrime = array_fill(2, $limit - 1, true);

    for ($i = 2; $i <= sqrt($limit); $i++) {
        if ($isPrime[$i]) {
            for ($j = $i * $i; $j <= $limit; $j += $i) {
                $isPrime[$j] = false;
            }
        }
    }

    for ($i = 2; $i <= $limit; $i++) {
        if ($isPrime[$i]) {
            $primes[] = $i;
        }
    }

    return $primes;
}
$primes = sieveOfEratosthenes(542);
print_r(array_slice($primes, 0, 100));

Метод 3: формула простых чисел
Формула простых чисел использует математическое выражение для генерации простых чисел. Эта формула, известная как формула n-го простого числа, вычисляет n-е простое число напрямую, без проверки на делимость.

function nthPrime($n)
{
    $limit = ceil($n * log($n) + $n * log(log($n)));
    $sieve = array_fill(0, $limit, true);
    $count = 0;
    $primes = [];

    for ($i = 2; $count < $n; $i++) {
        if ($sieve[$i]) {
            $primes[] = $i;
            $count++;

            for ($j = $i * $i; $j < $limit; $j += $i) {
                $sieve[$j] = false;
            }
        }
    }

    return $primes;
}
$primes = nthPrime(100);
print_r($primes);

В этой статье мы рассмотрели три различных метода генерации первых 100 простых чисел с помощью PHP. Метод грубой силы — самый простой, но не самый эффективный. Решето Эратосфена — популярный алгоритм генерации простых чисел до заданного предела. Наконец, формула простых чисел напрямую вычисляет n-е простое число без необходимости проверки делимости. Поняв и внедрив эти методы, вы сможете эффективно генерировать простые числа в своих программах PHP.

Не забудьте оптимизировать свой код в соответствии с вашими требованиями и размером простых чисел, которые вам нужно сгенерировать. Приятного кодирования!