Lenguaje PHP

Verificar números primos en PHP

Verificar números primos en PHP. Con 2 completos ejemplos aprenderemos a detectar números primos en el lenguaje PHP y también a partir de 2 números.

Generar números primos entre dos números en PHP

Vamos a crear un formulario con 2 entradas de números, un inicio y un fin o el intervalo entre el cual se generarán los números y se verificaran si son primos.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Generar Numeros primos</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-4">
<div class="card ">
<div class="card-header"> Ingrese rango de números </div>
<div class="card-body">
<form action="primos.php" method="POST">
<div class="form-group row">
<label for="n1" class="col-sm-1 col-form-label col-form-label-sm">Inicio:</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="n1" name="n1" placeholder="Ingrese nùmero" required>
</div>
</div>
<div class="form-group row">
<label for="n2" class="col-sm-1 col-form-label col-form-label-sm">Fin:</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="n2" name="n2" placeholder="Ingrese nùmero" required>
</div>
</div>
<button class="btn btn-primary" type="submit"> Procesar </button>
</form>
<?php
if($_POST){
$valor = $_POST['n1'];
$valor2 = $_POST['n2'];
$primos = "";
$no_primos = "";
$p = "";
$np = "";
for ($i=$valor; $i < $valor2; $i++) {
$resp = calcular_primo($i);
if ($resp == true) {
$primos = '
<tr>
<td>'." ".$i.'</td>';
$p=$p." ".$primos;
}else {
$no_primos = '
<tr>
<td>'." ".$i.'</td>
</tr>';
$np = $np." ".$no_primos;
}
}
?>
<div class="row mt-4">
<div class="col-md-3">
<table class="table table-bordered table-sm">
<thead>
<tr>
<th scope="col">Numeros Primos</th>
</tr>
</thead>
<tbody>
<?php echo $p ?>
</tbody>
</table>
</div>
<div class="col-md-3">
<table class="table table-bordered table-sm">
<thead>
<tr>
<th scope="col">Numeros No Primos</th>
</tr>
</thead>
<tbody>
<?php echo $np ?>
</tbody>
</table>
</div>
</div>

<?php
}
function calcular_primo($n){
$c = 0;
for($i = 1; $i <= $n; $i++){
if($n % $i == 0){
$c++;
}
}
if($c==2){
return true;
}
else{
return false;
}
}
?>
</div>
</div>
</div>
</body>
</html>

Explicación del código anterior.- El ejercicio anterior solicitamos 2 números y generamos una lista en dos tablas diferentes con los números primos y los que no son primos. Además, nos hemos apoyado de un framework de estilos CSS llamado Bootstrap 4.

Función verifica si un número es primo

Si deseamos crear un algoritmo simple y funciona el podemos usar la siguiente que tiene la capacidad de ingresar un número real en una variable llamado $numeroReal y de esta manera la función nos mostrara un resultado si el numero ingresado es primo o no mediante un mensaje.

<?php

$numeroReal = 6;

if(VerificaPrimo($numeroReal)){
echo 'Es primo';
}else{
echo 'No es primo';
}

function VerificaPrimo($numeroReal)
{
if(!is_numeric($numeroReal))
//Comprobamos si es un número valido.
return false;

for ($i = 2; $i < $numeroReal; $i++) {

if (($numeroReal % $i) == 0) {

// El número no es primo
return false;

}

}

// El número es primo
return true;
}
?>

Detectar número Primo usando formulario y función

En este ejemplo es similar al anterior solo le hemos agregado más valor, a continuación, detallaremos:

  • Framework BootStrap 4
  • Formulario HTML
  • Lenguaje HTML

De esta manera el usuario final solo ingresara un número y el formulario procesara la información enviándolo a la función para mostrar el mensaje si es primo o no a través de las alertas del framework BootStrap.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>verifica Numeros primos</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-4">
<?php
function VerificaPrimo($numeroReal)
{
if(!is_numeric($numeroReal))
//Comprobamos si es un número valido.
return false;

for ($i = 2; $i < $numeroReal; $i++) {

if (($numeroReal % $i) == 0) {

// El número no es primo
return false;

}

}
// El número es primo
return true;
}

if(isset($_POST["enviar"])){
$numeroReal = $_POST["n1"];

if(VerificaPrimo($numeroReal)){
echo '<div class="alert alert-primary" role="alert">Es primo</div>';
}else{
echo '<div class="alert alert-danger" role="alert">No es primo</div>';
}

}
?>
<div class="card ">
<div class="card-header"> Ingrese un número </div>
<div class="card-body">
<form action="" method="POST">
<div class="form-group row">
<label for="n1" class="col-sm-1 col-form-label col-form-label-sm">Inicio:</label>
<div class="col-sm-4">
<input type="number" class="form-control form-control-sm" id="n1" name="n1" placeholder="Ingrese nùmero" required>
</div>
</div>

<button class="btn btn-primary" name="enviar" type="submit"> Procesar </button>
</form>

</div>
</div>
</div>
</body>
</html>

Conclusiones de números primos

Hoy hemos aprendido a manejar números primos con PHP. Sin embargo, hemos hechos 2 ejemplos.

A través de rango de números y apoyándonos de un formulario para saber la cantidad de números primos

El otro ejemplo es simplemente verificar si el número ingresado en el formulario es primo o no.

Espero que esta lección es ayude, gracias.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad