Números primos y perfectos en Php

Php

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>

Deja un comentario

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