"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como detectar números primos com eficiência usando loops em PHP?

Como detectar números primos com eficiência usando loops em PHP?

Publicado em 01/11/2024
Navegar:520

How to Efficiently Detect Prime Numbers Using Loops in PHP?

Detecção de números primos usando loops

No domínio da programação, encontrar números primos requer algoritmos eficientes. Uma abordagem comum é empregar loops, seja for ou while.

Uma tentativa anterior de implementação de PHP usando loops resultou em estimativas incorretas. Vamos nos aprofundar em uma abordagem alternativa.

Função IsPrime

A função IsPrime fornecida oferece uma solução robusta para detecção de números primos:

function isPrime($num) {
    // Handling special cases: 1 is not prime, 2 is the only even prime
    if ($num == 1) {
        return false;
    } elseif ($num == 2) {
        return true;
    }

    // Efficiently handling even numbers
    if ($num % 2 == 0) {
        return false;
    }

    // Checking odd factors up to the square root
    $ceil = ceil(sqrt($num));
    for ($i = 3; $i 

Exemplo de uso

Utilizar esta função é simples:

$number = 17;
if (isPrime($number)) {
    echo $number . " is a prime number.";
} else {
    echo $number . " is not a prime number.";
}

Principais recursos

  • Detecta números primos com alta precisão
  • Lida com eficiência com casos especiais e números pares
  • Não precisa calcular expoentes ou usar matrizes de divisão
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3