Este tutorial mostrará el manejo de números primos utilizando PHP.

El primer ejercicio consiste en lo siguiente. Se ingresará un número en un formulario web, y se lo procesa para indicarnos si el número ingresado es primo o no. Es un programa muy sencillo pero muy útil.

1.- Creamos un formulario web con Dreamweaver o cualquier otro editor HTML. Y tenemos algo como esto:

El nombre del campo de texto será: numero_primo. En el action del Form llamamos al archivo procesa_primo.php que lo crearemos más adelante.
El código HTML del formulario sería el siguiente:

<form id=”form1″ name=”form1″ method=”post” action=”procesa_primo.php”>
<table width=”460″ border=”0″>
<tr>
<td colspan=”2″><div align=”center”><strong>Ingreso número</strong></div></td>
</tr>
<tr>
<td><strong>Ingrese un número:</strong></td>
<td><label>
<input type=”text” name=”numero_primo” id=”numero_primo” />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan=”2″><div align=”center”>
<label>
<input type=”submit” name=”ok” id=”ok” value=”Ok” />
</label>
</div></td>
</tr>
</table>
<label></label>
</form>

2.- Antes de crear el archivo procesa_primo.php vamos a crear otro archivo php. A este lo vamos a llamar funcion_primo.php
Este archivo contendrá una función que recibirá un número, y devolverá True si es primo o False, en caso contrario. En el archivo funcion_primo.php vamos a ingresar el siguiente código:

<?php
function primo($num){
$cont = 0;
for($i = 1; $i <= $num; $i++){
if($num % $i == 0){
//echo “$i <br>”;
$cont++;
}
}

if($cont==2){
return true;
}
else{
return false;
}
}
?>

El método recibe un número, y dentro del bucle del for vamos a recorrer desde el número 1 hasta el número ingresado (es decir tenemos una serie de números consecutivos). Luego vamos a dividir el número ingresado para cada uno de esos número consecutivos y a obtener el residuo por medio del comando %. Como el número primo es solo divisible para sí mismo y para la unidad, entonces vamos a contar cuántas veces el número ingresado tuvo residuo cero para cada número consecutivo desde el 1 hasta si mismo. Si el contador es igual a 2, entonces es número primo, caso contrario no, y es eso lo que devuelve la condición al final. Esta función se la puede usar de diferentes maneras como veremos más adelante.

3.- Ahora vamos a crear el archivo procesa_primo.php
Este archivo contiene el siguiente código PHP:

<?php
$num1 = $_POST["numero_primo"];
include (“funcion_primo.php”);
$resp = primo($num1);
if ($resp == true) {
echo “$num1 Es primo”;
}
else {
echo “$num1 No es primo”;
}
?>

Por medio de $_POST["numero_primo"] estamos obteniendo el valor que el usuario ingresó en la caja de texto del primer formulario y almacenándolo en la variable $num1. Usamos include (“funcion_primo.php”); para poder llamar a la función que creamos en ese archivo. Luego simplemente en la variable $resp llamamos al método primo y le enviamos el valor de la variable $num1. Por lo tanto $resp nos va a devolver true o false, según sea primo o no. Luego dentro del IF desplegamos el mensaje en pantalla informando si el número ingresado en el formulario es primo o no lo es.

Ahora vamos a hacer una variación del ejercicio anterior. Vamos a ingresar un número y el programa nos devolverá una lista desde el número ingresado hasta el número 1 y nos dirá si cada número es primo o no.
Por ejemplo, ingresamos el 9. El programa devolverá:
9 no es primo
8 no es primo
7 es primo
6 no es primo
5 es primo
4 no es primo
.
.

Vamos a seguir utilizando el archivo funcion_primo.php

1.- En un archivo nuevo creamos un formulario parecido al anterior. Pero el campo de texto se llamará numero_primo2 y en el action vamos a llamar a procesar_primos_sucesivos.php que lo crearemos más adelante.

El código del formulario sería el siguiente:

<form id=”form1″ name=”form1″ method=”post” action=”procesar_primos_sucesivos.php”>
<table width=”460″ border=”0″>
<tr>
<td colspan=”2″><div align=”center”><strong>Ingreso número</strong></div></td>
</tr>
<tr>
<td><strong>Ingrese un número:</strong></td>
<td><label>
<input type=”text” name=”numero_primo2″ id=”numero_primo2″ />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan=”2″><div align=”center”>
<label>
<input type=”submit” name=”ok” id=”ok” value=”Ok” />
</label>
</div></td>
</tr>
</table>
</form>

2.- Crearemos el archivo procesar_primos_sucesivos.php
Este contendrá el siguiente código PHP:

<?php
//Almacenamos en la variable $num1 el valor ingresado en la caja de texto del formulario.
$num1 = $_POST["numero_primo2"];
//Lamamos al archivo funcion_primo.php para poder utilizar la función primo.
include (“funcion_primo.php”);

//Creamos una tabla para desplegar los datos
echo ‘<table width=”460″ border=”0″>';

//Recorremos un bucle desde el número ingresado hasta el número 1.
for ($j = $num1; $j >= 1; $j–) {
//En un vector llamamos al método primo y le pasamos el valor de la variable $j, cada valor del vector $resp[] almacenará la información del número $j diciendo si es true en caso de ser primo, o false en caso contrario
$resp[$j] = primo($j);
echo ‘<tr>';

//En caso de que el valor almacenado en cada posición $j en el vector sea verdadero le hacemos que despliegue que dicho número es primo, o que despliegue que no es primo si el valor almacenado es falso.
if ($resp[$j] == true) {
echo ‘<td width=”180″>’.$j.’ es primo </td>';
}
else {
echo ‘<td width=”180″>’.$j.’ no es primo </td>';
}
echo ‘</tr>';
}
echo ‘<table>';

?>

La explicación del programa está en los comentarios.
Ojalá les sirva. Es un programa muy sencillo pero muy útil
Saludos :)

No hay respuestas para “Números primos usando PHP”

Deja un comentario

Polls

¿Qué lenguaje de programación utilizas más?

View Results

Loading ... Loading ...
Síguenos en Twitter
Cyberexplorador en Twitter
Comparte este blog
Bookmark and Share
Publicidad
Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: