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

Función que me permita saber si el número introducido en el formulario es impar y primo.

23 de mayo de 2016

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?

php

Respuestas

#1

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

23 mayo 2016, 12:58
#2

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

23 mayo 2016, 14:44