porque no funciona??! ke hago mal?

novatoo
11 de Diciembre del 2005
Pues eso aki estoi de nuevo.... he hecho esto... con la ayuda de ke me han dicho como es ver si un numero es primo o no.... bueno pero lo ke yo kiero es introducir un numero n y ke me salga en pantalla los n primeros numeros primos.. vale.. entonces lo ke he hecho ha sido esto:


int aux, num, x, i, j;
cin >> num;
i = 0;
while (i<num)
{
for (j=1; j ++;)
{
aux = 0;
for (x=1; x<=num; x ++)
{
if (num%x==0)
{
aux ++;
}
}
if (aux<=2)
{
cout << num << endl;
i ++;
}
break;
}
}


he metido un while para ke cuente las veces.... ke tiene ke salir el numero en pantalla.... y luego el for para ke vaya probando numeros el algoritmo de ver si es primo o no..... y si lo es pues anotarlo.... pero no se ke pasa ke no funciona.. yo creia ke asi deberia funcionar pero no lo hace.... a ver si alguno me puede ayudar a solucionar esto.
gracias por adelantado :D

kike
11 de Diciembre del 2005
El primer for tiene como condicion de ruptura j++ con lo que nunca terminara.
Ademas de eso, no necesitas tanto bucle con 2 tienes suficiente.
aqui te pego el codigo necesario para que te funcione correctamente, es el tuyo transformado

int aux, num, x, j;
cin >> num;

for (j=1;j<=num; j++)
{
aux = 0;
for (x=1; x<=j; x++)
{
if (j%x==0)
{
aux ++;
}
}
if (aux<=2)
{
cout << j << endl;
}
}

novato
11 de Diciembre del 2005
ese lo ke hace es...... decirte los primos ke hay hasta el numero ke has introducido... y yo lo ke necesitaba era introduces el numero de primos ke kieres ke te salga en pantalla.. muxas gracias por contestar pero ya lo tengo hecho. muxas gracias de todas formas.
aqui dejo como lo he hecho por si alguno le interesa....:

int aux, num, x, i, j;
cout << "introduzca el numero de primos que quiere mostrar" << endl;
cin >> num;
i = 0;
j = 2;
while (i<num)
{
aux = 0;
for (x=1; x<=j; x ++)
{
if (j%x==0)
{
aux ++;
}
}
if (aux<=2)
{
cout << "numero primo " << j << endl;
i ++;
}
j ++;
}