Foros del Web » Programando para Internet » PHP »

Explicacion de que un numero no es primo

Estas en el tema de Explicacion de que un numero no es primo en el foro de PHP en Foros del Web. Hola: tengo el sigueinte codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $valor = $_POST [ 'valor' ] ; $primo = 0 ;   for ( ...
  #1 (permalink)  
Antiguo 10/11/2013, 07:36
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Explicacion de que un numero no es primo

Hola:

tengo el sigueinte codigo:

Código PHP:
Ver original
  1. $valor = $_POST['valor'];
  2. $primo = 0;
  3.  
  4. for ($b = 1; $b < $valor; $b++) {
  5.     if ($valor % $b == 0) {
  6.         $primo++;
  7.     }
  8. }
  9.  
  10. if ($primo >= 2) {
  11.    $resultado= "No es primo";
  12. } else {
  13.   $resultado= "Es primo";
  14. }

Con el que se determina si un numero es primo o no.

Pero me gustaria que en la explicacion de que no es primo, añadirle una coletilla de:

"No es primo por que ademas de ser divisible por uno y por si mismo es divisible por X"

Gracias por vuestra ayuda
  #2 (permalink)  
Antiguo 10/11/2013, 08:25
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Explicacion de que un numero no es primo

Código PHP:
Ver original
  1. if ($valor % $b == 0)
Si eso ocurre, y b es mayor que 1, es que no es primo.Si sólo quieres saber si es primo o no, si esa condición se cumple, no hace falta continuar el bucle.
Entonces, si $b!=$valor y $b>1, sólo tienes que imprimir "Es también divisible por $b".

Aparte:
el bucle comienzalo en 2.No en 1.
Sáltate cualquier número par que no sea 2.
  #3 (permalink)  
Antiguo 10/11/2013, 08:59
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Respuesta: Explicacion de que un numero no es primo

Hola:

He entendido el razonamiento, pero no se como hacer el bucle.

gracias por tu tiempo
  #4 (permalink)  
Antiguo 10/11/2013, 11:05
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Explicacion de que un numero no es primo

Intenta con esto
Código PHP:
Ver original
  1. $valor = $_POST['valor'];
  2. $primo = 0;
  3. $multiplos=array();
  4. for ($b = 1; $b < $valor; $b++) {
  5.     if ($valor % $b == 0) {
  6.         $primo++;
  7.         $multiplos[]=$b;
  8.     }
  9. }
  10.  
  11. if ($primo >= 2) {
  12.    $resultado= "No es primo, los múltiplos son: ".implode(',',$multiplos);
  13. } else {
  14.   $resultado= "Es primo";
  15. }
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 10/11/2013, 12:29
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Respuesta: Explicacion de que un numero no es primo

Para demostrar que sea primo deberia de igualar b a $valor?


for ($b = 1; $b < $valor; $b++)

he probado a ponerlo $b = $valor y $b == $valor y no es correcto
  #6 (permalink)  
Antiguo 10/11/2013, 20:39
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Explicacion de que un numero no es primo

úsalo de esta manera "<=" obviamente sin las comillas
Código PHP:
Ver original
  1. for ($b = 1; $b <= $valor; $b++)
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 11/11/2013, 01:35
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Respuesta: Explicacion de que un numero no es primo

Mil gracias¡¡¡¡

Etiquetas: numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:35.