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>