В мире программирования простые числа занимают особое место. Эти уникальные целые числа на протяжении веков очаровывали математиков и компьютерщиков. Если вы PHP-разработчик и хотите разгадать тайну простых чисел, вы попали по адресу! В этой статье блога мы рассмотрим различные методы проверки того, является ли число простым или нет, с помощью PHP. Итак, давайте углубимся и раскроем секреты простых чисел!
Метод 1: метод грубой силы
Метод грубой силы — это самый простой метод определения того, является ли число простым. Он включает в себя проверку, делится ли число на любое целое число от 2 до квадратного корня из числа. Если делителей не обнаружено, число простое. Давайте посмотрим, как это можно реализовать на PHP:
function isPrime($number) {
if ($number < 2) {
return false;
}
for ($i = 2; $i <= sqrt($number); $i++) {
if ($number % $i === 0) {
return false;
}
}
return true;
}
// Usage example
$number = 17;
if (isPrime($number)) {
echo "{$number} is a prime number.";
} else {
echo "{$number} is not a prime number.";
}
Метод 2: Решето Эратосфена
Решето Эратосфена — это эффективный алгоритм для поиска всех простых чисел до заданного предела. Хотя это не лучший подход для проверки того, является ли отдельное число простым, стоит отметить его полезность при генерации простых чисел. Вот пример реализации на PHP:
function sieveOfEratosthenes($limit) {
$isPrime = array_fill(2, $limit - 1, true);
for ($i = 2; $i * $i <= $limit; $i++) {
if ($isPrime[$i]) {
for ($j = $i * $i; $j <= $limit; $j += $i) {
$isPrime[$j] = false;
}
}
}
return array_keys(array_filter($isPrime));
}
// Usage example
$limit = 100;
$primes = sieveOfEratosthenes($limit);
echo "Prime numbers up to {$limit}: " . implode(', ', $primes);
Метод 3: Малая теорема Ферма
Малая теорема Ферма предлагает альтернативный подход к определению того, является ли число простым или нет. Он гласит, что если p
— простое число, то для любого целого числа a
(где 1
function isPrime($number) {
if ($number < 2) {
return false;
}
for ($a = 2; $a < $number; $a++) {
if (gmp_pow($a, $number - 1) % $number !== 1) {
return false;
}
}
return true;
}
// Usage example
$number = 29;
if (isPrime($number)) {
echo "{$number} is a prime number.";
} else {
echo "{$number} is not a prime number.";
}