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
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
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