Inicio Apuntes FPApuntes DAWDesarrollo Web en Entorno Servidor Ejercicio Básico 17 PHP: Comprobación de números primos

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

Publicado por entreunosyceros
Publicado el: Última actualización:

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.

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.