Con el fin de perfeccionar cada vez más nuestro aprendizaje del lenguaje Php, el día de hoy veremos un ejemplo que nos llega a través de nuestro colega Luis Diaz en Twitter, el cual trata de la generación de los números primos y perfectos en Php entre 1 y N, haciendo uso de Php, a continuación el código:
Números primos y perfectos en Php
<?php
function ContarDivisores($num){
$divisor = 0;
for($i=1;$i<=$num;$i++){
if($num % $i == 0){
$divisor +=1;
}
}
return $divisor;
}
function SumaDivisores($num){
$suma = 0;
for($i=1;$i<$num;$i++){
if($num % $i == 0){
$suma += $i;
}
}
return $suma;
}
function Generador($tope){
$cadena = "";
for($i=1;$i<=$tope;$i++){
if(ContarDivisores($i) == 2){
$cadena = $cadena.$i.",";
}
}
$cadena = substr($cadena,0,-1);
return $cadena;
}
function GeneradorPerfecto($tope){
$cadena = "";
for($i=1;$i<=$tope;$i++){
if(SumaDivisores($i) == $i){
$cadena = $cadena.$i.",";
}
}
$cadena = substr($cadena,0,-1);
return $cadena;
}
?>
< !DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8"/>
<title>Generador númerico</title>
</head>
<body>
<h1>Generador de Primos y Perfectos entre 1 y N</h1>
<form action="Generador.php" method="post">
<label>Digite N:</label>
<input type="number" name="num" min="1" required/>
<input type="submit" value="Generar Primos" name="primo"/>
</form>
<h3>Números Primos generados</h3>
<textarea rows="12" cols="46">
< ?php
if(isset($_POST['primo'])){
if(Generador($_POST['num']) == "")
echo "No existen primos en ese rango.";
else
echo Generador($_POST['num']);
}
?>
</textarea><br /><br />
<form action="Generador.php" method="post">
<label>Digite N:</label>
<input type="number" name="numero" min="1" required/>
<input type="submit" value="Generar Perfectos" name="perfecto"/>
</form>
<h3>Números Perfectos generados</h3>
<textarea rows="12" cols="46">
< ?php
if(isset($_POST['perfecto'])){
if(GeneradorPerfecto($_POST['numero']) == "")
echo "No existen perfectos en ese rango.";
else
echo GeneradorPerfecto($_POST['numero']);
}
?>
</textarea>
</body>
</html>
