Ejercicio Básico 17 PHP: Comprobación de números primos
Ejercicio Básico 17 PHP: Comprobación de números primos

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

El post de hoy lo voy a usar para publicar un pequeño programa que servirá para identificar números primos con PHP. El enunciado del ejercicio es el siguiente;

Crear un formulario donde el usuario introduzca números separados por comas y devuelva un mensaje en el que se indique cuales son primos. Hay que comprobar que el campo no esté vacío, pero omitiremos el resto de comprobaciones (por aquello de no tardar demasiado en hacerlo), ya que realizar estas comprobaciones no es muy complicado. El ejercicio se ha de realizar todo en el mismo archivo (index.php).

Código para comprobar números primos

    <?php
    if (isset($_POST['Enviar'])){ //con isset confirmamos que el formulario ha sido enviado correctamente
      if (empty($_POST['num'])){ //comprobación de los posibles campos vacíos
          echo "El campo números no puede estar vacío.<br>";
          echo "<a href='index.php' title='Volver'>Volver</a>"; //botón volver
      }else{
            $num=$_POST['num']; //se meten los números del formulario dentro de la variable num
            $arrayDatos = split(",", $num); //uso split para dividir el string por las comas, devuelve un array de cadenas
            $longitud = count($arrayDatos); //se cuenta el número de elmentos
            for($i=0;$i<$longitud;$i++){ //con este bucle recorremos el array aumentando el indice
                $cont=0; //el contador de divisores
              if($arrayDatos[$i]>0){
                if(is_numeric($arrayDatos[$i])){
                   
                 for ($j=1;$arrayDatos[$i]>$j;$j++){ //bucle para incrementar los divisores
                   
                    if($arrayDatos[$i]%$j==0){ //preguntamos por todos los posibles divisores del elemento
                    $cont++; //Si se puede dividir exactamente, añadimos uno al contador
                                 
                    }
                 }
               }else{
                   echo "Error. Tienen que ser números separados por comas.<br>";
                   continue;
               }
              }else{
                  echo "Error. Tienen que ser números POSITIVOS separados por comas.<br>";
                  continue;
              }
                if ($cont>=2){ //si el número de divisores es mayor o igual a 2 no es primo
                    echo "El numero ".$arrayDatos[$i]." NO es PRIMO <br>";
                }
                if ($cont<2){ //si el número de divisores es menor a dos es primo
                    echo "El numero ".$arrayDatos[$i]." es PRIMO <br>";
                }
         }
         echo "<a href='index.php' title='Volver'>Volver</a>"; //botón volver
     }  
    }else{
    ?>
      <form action="index.php" method="post" name="form" id="form"><!--Inicio formulario-->
       
          <table align="center" border="1" >  
                           
                <tr><!--línea del título-->
                    <td align="center" colspan="2" bgcolor="#f0f0f0">
                        <h2>
                           Escribe un conjunto de números separados por comas
                        </h2>
                    </td>
                </tr><!--Fin de la línea del título-->
               
                <tr><!--Línea números-->
                    <td bgcolor="#f0f0f0">Números: </td>
                    <td><input type="text" name="num" size="70" maxlenght="40" title="Números"/></td>
                </tr><!--Fin de la línea números-->
               
               <tr><!--línea del botones -->
                    <td align="center" bgcolor="#f0f0f0" colspan="2">
                        <input type="submit" value="enviar" name="Enviar" title="Enviar"  />
                         || 
                        <input type="reset" value="borrar" name="borrar" title="borrar" />
                    </td>
                </tr><!--Fin línea línea del botones-->
               
           </table><!--FIN de la tabla-->
         
        </form><!--Fin del formulario-->
    <?php
    } //se cierra el else aquí para que no se imprima el resultado del código php
    //al mismo tiempo que se imprime en pantalla el formulario.
    ?>


Es posible que esta no sea la forma más efectiva de realizar la comprobación de si son números primos o no, pero es la que se me ocurrió. Aquí queda para mis futuras consultas o por si a alguien le sirve para algo.







¿Qué te ha parecido este post?

¡Haz clic en una estrella para calificarla!

Puntuación media 0 / 5. Recuento de votos: 0

¡No hay votos hasta ahora! Sé el primero en calificar esta publicación.

No te pierdas otros artículos ...

¡Síguenos en las redes sociales!

¡Lamentamos que esta publicación no te haya sido útil!

¡Permítanos mejorar esta publicación!

¿Cuéntanos cómo podemos mejorar esta publicación?

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.