programas básicos en PHP

programas básicos en PHP

·

3 min read

Un número perfecto es aquel que da él mismo haciendo la suma de sus divisores sin incluir él mismo.

como ejemplo el 6 , cuyos divisores son 1,2,3,6 es un número perfecto ya que si sumamos 1+2+3 obtenemos de resultado 6. no hay muchos numero perfectos y el trabajo que tiene que realizar el hardware del equipo para calcularlo no es tan simple si hablamos de numeros grandes, un ordenados normal puede tardar tres horas en calcular los numeros perfectos mayores de 8128, ya que el siguiente número perfecto más grande ya estariamos hablando de millones en concreto 33.550.336. es un tema apasionante para algunos entre los que me incluyo.

volviendo a php. iniciamos el programa como siempre dentro de un html creamos un formulario donde el usuario introducirá por teclado el número a calcular. dentro del form llamos al programa en php en este caso lo he llamdo perfecto.php con el metodo get

El texto que imprimira por pantalla será Introduce un numero positivo:

y despies le ponemos una limitacion dentro de un input de tipo number le indicamos que como minimo el numero que acptara este programa sera el 1, de esta forma le forzamos a no usar decimales ni numeros negativos

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>perfecto.php</title>
</head>
        <form action="perfecto.php" method="get">
            Introduce un numero positivo:
            <input type="number" name="numero" min="1">
            <input type="submit" value="Enviar">
</form>

iniciamos php con una condicion que utilice la funcion $_REQUEST esta es una funcín que exsiste en php.

le asignamos a la varible $n el valor de la funcion $_REQUEST a la que llamaremos numero.

necesitaremos mas adelante una funcion $suma asi que la inicializamos a 0

<?php
if($_REQUEST)
    {
        $n=$_REQUEST["numero"];

            $suma=0;

ahora dentro del php vamos a incluir una linea que será html, lo que nos aparecerá por pantalla "Los divisores de $n son: " y le metemos un salto de linea con <br> no nos olvidamos de terminar todas las sentencias con un ;

comienza el bucle for-->para el valor $i el cual es el resultado de dividir el numero que sea, por ejemplo $n entre 2, y siempre que $i sea mayor que 1, continua (se puede poner $i++ para que valla en un sentido y co $i-- descontaria por lo tanto iria en el otro sentido)

 echo "Los deivisores de $n son: <br>";
            for($i=$n/2;$i>=1;$i--)

abrimos llaves y dentro creamos una condición: if()

si $n dividido entre $i da como resultado 0

volvemos a abrir llaves ya que hemos definido $suma pero no la hemos utilizado

asignamos al valor $suma, $suma + $i

 {
                if($n%$i==0)
                {
                    echo $i. ", ";
                    $suma=$suma+$i;
                }
            }

ahora le decimos con un echo que nos muestr por pantalla "la suma de los divisoresde $n es $suma.

En un if igualamos $n a $suma usando el doble ==

por último que nos muestre todos los numeros y nos diga si es perfecto o si no lo es.

cierro php con ?> y cierro el html con las etiquetas; </body> </html>

 echo "la suma de los divisores de $n es $suma <br>";
        if($n==$suma)
        {
            echo "$n es un numero perfecto";
        }
        else
        {
            echo "$n no es un numero perfecto";
        }
    }
?>
</body>
</html>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>perfecto.php</title>
</head>
<body>
        <form action="perfecto.php" method="get">
            Introduce un numero positivo:
            <input type="number" name="numero" min="1">
            <input type="submit" value="Enviar">
</form>
<?php
if($_REQUEST)
    {
        $n=$_REQUEST["numero"];

            $suma=0;
            echo "Los deivisores de $n son: <br>";
            for($i=$n/2;$i>=1;$i--)
            {
                if($n%$i==0)
                {
                    echo $i. ", ";
                    $suma=$suma+$i;
                }
            }

        echo "la suma de los divisores de $n es $suma <br>";
        if($n==$suma)
        {
            echo "$n es un numero perfecto";
        }
        else
        {
            echo "$n no es un numero perfecto";
        }
    }
?>
</body>
</html>