[PHP] Números Primos

Hola mundo, espero estén teniendo un buen día tomando unos deliciosos bits de café. Hoy les presentaré un código que nos permite determinar si un número es primo.

Primero entremos en contexto, un número primo es un número entero mayor que cero, que tiene exactamente dos divisores positivos más pequeños que él, o bien, como producto de dos enteros positivos de más de una forma.

Por ejemplo, los primeros 10 números primos son 2, 3, 5, 7, 11, 13, 17, 19, 23, 29.

Para nuestra solución, obtendremos los 100 primeros números primos.

El código en PHP correspondiente al planteamiento es: 

for ($i = 1; $i <= 100; ++$i) {
    if (primo($i)) {
        echo 'El número '.$i.' es primo';
    } else {
        echo 'El número '.$i.' NO es primo';
    }
}

function primo($num)
{
    $cont = 0;
    for ($i = 2; $i <= $num; ++$i) {
        if ($num % $i == 0) {
            if (++$cont > 1) {
                return false;
            }
        }
    }
    return true;
}

  1. Como podemos observar declaramos una función llamada primo que recibe como parámetro el número a determinar si es primo o no.
  2. Mediante un ciclo for que se inicia en 2, se recorren todos los números hasta el valor recibido.
  3. Verificamos que si se puede dividir por algún número más de una vez retorne un false que nos indicará que dicho número que se recibió como parámetro no es primo.
  4. De lo contrario retornara un true que indicará que el número que se recibió como parámetro si es primo.
  5. Para pasar el número a la función solo se debe invocar dicha función, pero como planteamos que obtendríamos los 100 primeros números primos, se estableció un ciclo for que iniciara desde 1 y terminara hasta que fuera menor o igual a 100.
  6. Si es primo, osea, si lo que nos retorna la función es un true, se imprimirá un mensaje indicando cual es ese dicho número primo, de lo contrario, nos mostrará cual es el número que no cumplió con las condiciones planteadas en la función.
  

Te invito a que me compartas una solución alterna a la que presenté.

Saludos!

Comentarios

Entradas más populares de este blog

[PHP] Palíndromo

[PHP] Serie de Fibonacci