Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/04/2011, 13:52
ssaammuu
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: Problema de logica con un For....

El segundo for, está dentro del primero.
Te recomiendo que uses sangrías y llaves para visualizar el código mejor.
Código C++:
Ver original
  1. int primos(int c){
  2.     int a,j,pr;
  3.     pr=1;
  4.  
  5.     for(a=2 ; a<=c ; a++){
  6.         for(j=2 ; j<=a/2 ; j++){
  7.             if((a%j)==0)
  8.             pr=0;
  9.         }
  10.         if(pr){
  11.             p("%d\n",a);
  12.         }
  13.         pr=1;
  14.     }
  15. }
La función sigue estos pasos
Empieza con pr=1 indicando que de momento el número es primo
Para cada número del 2 hasta el número deseado (c) [primer for]:
Para cada número del 2 hasta c/2 [segundo for]:
Si el número es factor pr=0, es decir, no es primo
Si es primo lo imprime

El c/2, es porque, un número no pude ser factor de un número que sea mayor de la mitas de este.

Si miras por ejemplo 10:
factores: 1, 2, 5
ningún número de 5 (10/2) va a poder ser factor de 10

Siento la mala explicación, pero espero que entiendas la lógica más o menos.
__________________
Foros Desarrollo de Juegos