Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Relacionar dos funciones PHP

23 de mayo de 2016

En mi formluario, se debe de mostrar si el número introducido es primo o no solamente cuando el número sea impar. He conseguido hacer las funciones para que me digan si el número es par o no y si es primo o no, pero como consigo que me diga si es primo o no solamente cuando el numero introducido sea impar. Esto es lo que he hecho hasta ahora:

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)">
<meta name="dcterms.created" content="do., 22 may. 2016 13:05:54 GMT">
<meta name="description" content="">
<meta name="keywords" content="">
<title></title>
 
</head>
<body>
<form action="calcula.php" method="post">
<table border=1 bgcolor="#3B742E" align='center'>
<tr> <td><font color='white'><b>Ingrese el numero </b></font></td> <td><input type="text" name="num"> </tr>
<tr align='center'> <td colspan="2"><input type="submit" name="ejecutar" value="ejecutar"> </td> </tr>
<tr align='center'> <td colspan="2"><input type="reset" name="limpiar" value="limpiar"> </td> </tr>
</table>
</form>
 
</body>
</html>

PHP

<?php
$num=0;
$num=$_POST["num"];
$cont=0;
for ($i=1; $i <=$num; $i++) {
if ($num % $i==0) {
$cont=$cont+1;
}
}
 
if ($cont==2) {
echo "el número es primo";
echo "<h3 align='center>";
}
else {
echo "el número no es primo";
echo"<h3 align='center>";
}
?>
<?php
if(isset($_POST['num']))
{
$num = $_POST['num'];
}
if($num != null)
{
if(!esPar($num))
{
 
}
}
else
{
echo "<br>";
echo "<h3 align='center'>Debe ingresar un numero </h3>";
echo "<h3 align='center'><a href='calcularr.html'>Volver al formulario </a></h3>";
}
 
function esPar($num)
{
echo "<h3 align='center'><font color='#C0B840'>";
if ($num % 2 == 0)
{
echo "El numero $num es par";
 
echo "<a href='calcularr.html'>Volver al formulario";
return true;
}
else
{
echo "El numero $num es impar";
 
echo "<a href='calcularr.html'>Volver al formulario";
return false;
}
 
if (esPrimo($num)) {
echo "...";
} else {
echo "...";
}
}
 
?>

Respuestas

#1

El código debería ser algo así:

<?php
 
function esPrimo($numero)
{
    $cont=0;
    for ($i=1; $i <=$num; $i++) {
        if ($num % $i==0) {
            $cont=$cont+1;
    }
 
    if ($cont==2) {
        return true;
    } else {
        return false;
    }
}
 
function esPar($numero)
{
    $resto = $numero % 2;
 
    if ($resto == 0) {
        return true;
    } else {
        return false;
    }
}
 
$numero = 0;
$numero = $_POST["num"];
 
if (esPar($numero)) {
    echo "<p>Es par</p>";
} else {
    if (esPrimo($numero)) {
        echo "<p>Es impar y primo</p>";
    } else {
        echo "<p>Es impar pero no es primo</p>";
    }
}
 
?>

@javiereguiluz

23 mayo 2016, 15:19
#2

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\proba.php on line 44 me sale eso

@tm_luxury

23 mayo 2016, 17:27