Hola a todos. Tengo que realizar un ejercicio de un formulario donde intruducimos un númeero y si este es impar debe decir si es primo o no, y si es par debe decir si su numero fibonacci.
Ya tengo la función para saber si es par o no:
if (isset($_POST['num'])) { $num = $_POST['num']; } if ($num != null) { if (!esPar($num)) { echo "<h3 align='center'>Ahora toca ver si es primo </h3>"; } } 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 "</font></h3>"; echo "<h3 align='center'><a href='calcularr.html'>Volver al formulario </a></h3>"; return true; } else { echo "El numero $num es impar"; echo "</font></h3>"; echo "<h3 align='center'><a href='calcularr.html'>Volver al formulario </a></h3>"; return false; }
Y también tengo la función para saber si es primo o no:
if ($num % 2 == 0) { $i = 2; while ($i < $n): if (($n % $i) == 0) return false; $i++; endwhile; return true; echo esPrimo(11) ? "Es primo" : "NO es primo"; }
Lo que no sé es como relacionarlas. ¿Cómo consigo que me diga si es primo o no, solamente cuando el número sea impar?
Respuestas
Aunque el código que muestras es correcto, te consejo que separes lo que es código PHP puro de lo que son mensajes HTML que se muestran por pantalla. Lo que podrías hacer es definir tres funciones sencillas que devuelvan true
o false
en función del resultado:
function esPar($numero) { // ... } function esPrimo($numero) { // ... } function fibonacci($numero) { // ... }
Después, puedes unir todas ellas fácilmente y además puedes añadir los mensajes HTML que se muestran por pantalla:
$numero = (int) $_POST['num']; if (esPar($numero)) { echo "..."; echo fibonacci($numero); } else { echo "..."; if (esPrimo($numero)) { echo "..."; } else { echo "..."; } }
@javiereguiluz
he conseguido que aprezcan las tres:
<?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>";
}
?>
<br/>
<?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 "...";
}
}
?>
Pero ahora, ¿cómo consigo que me diga si es primo solo cuando es impar?
@tm_luxury