Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2013, 22:51
ElPatoGarrido
 
Fecha de Ingreso: noviembre-2011
Mensajes: 50
Antigüedad: 12 años, 6 meses
Puntos: 3
Pregunta Otra duda - For y while

Hola, estaba viendo el codigo de otra persona para mostrar el primo numero 10.001 en C, (es uno de los ejercicios del projecto euler) y bueno, la cosa es que me surgio una duda, por que al cambiar el primer while por un for surge un cambio que no se por que sucede. Primero les dejare el codigo con el while.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main() {
  5.     int j, count = 0, i = 2;
  6.        
  7.     while (count < 10000) {
  8.         i++;
  9.         for (j=2; j<=sqrt(i); j++)
  10.             if (!(i % j))
  11.                 break;
  12.             if (j > sqrt(i))
  13.                 count++;
  14.        
  15.     }
  16.    
  17.     printf("%d es el primo 10001\n", i);
  18.    
  19.     return 0;
  20. }

Y como veran, funciona perfect, pero si en vez del primer while lo cambio por un for con las siguientes condiciones ya me lanza otro numero primo, (no el numero 10.001):

Código C:
Ver original
  1. for (i=0; count < 10000; i++)

Segun yo en principio deberia hacer lo mismo, ya que pongo la misma condicion e incremento, pero no se en que se difiere el for con el while, o que hace que haga que hallan diferentes resultados con el cambio del for con el primer while.

Si alguien me lo aclara se lo agradeceria.

Saludos.