Otro problema con C++

#include
#include

using namespace std;


int main ()
{

const int MAX = 100;
typedef int vector100 [MAX]; //Definición del tipo vector de 100 elementos
vector100 primos; //Definición del vector "primos"

primos[0] = 2;
primos[1] = 3;

int i, x;
bool c;

for (i=2; i<=MAX; i++)
{
do
{
for (x=4; x<=(i-1); x++)
{
if ( x % primos[i]!=0)
c=true;
}

} while (c==false);

primos[i]=x;

}

for (i=0; i<=MAX-1;i++)
{
cout << primos [i] << "\n";
}

system ("PAUSE");
return 0;
}


No se me ejecuta nada. El programa consiste en calcular los 100 primeros numeros primos sabiendo que si un número es primo, consiste en comprobar que ese número no es divisible por ninguno de los números primos menores que él.

A ver si alguien puede ayudarme :-|

Gracias!
Primera corrección a simple vista de ojo sin mirar si eso va hacer lo que tiene que hacer...

EDITO: Segunda corrección:

#include
#include

using namespace std;


int main ()
{

const int MAX = 100;
typedef int vector100 [MAX]; //Definición del tipo vector de 100 elementos
vector100 primos; //Definición del vector "primos"

primos[0] = 2; // ¿El 1 no es primo?
primos[1] = 3;

int i, x;
bool c; // ¿Cuando inicializas esta variable?

for (i=2; i<=MAX; i++)
{
do
{
for (x=4; x<=(i-1); x++) // ¿porque pones x<=(i-1) y no x < i ?
{
if ( x % primos[i]!=0) // ¿Por que divides el numero solo por primos?
c=true; // ¿Cuando la vuelves a poner a false?
}

} while (c==false);

primos[i]=x;

}

for (i=0; i<=MAX-1;i++) // Lo mismo... ¿Porque no i < MAX?
{
cout << primos [i] << "\n"; // En vez de << "\n" pon << endl;
}

system ("PAUSE");
return 0;
}


Recomendación. Empieza de Cero.

Create la funcion EsPrimo(x), que devuelve true si el numero es primo y false en caso contrario.

Un numero es primo cuando solo es divisible por 1 y por el mismo.

Cuando te funcione haz un bucle desde 1 hasta 100 y le preguntas si EsPrimo(valor), y si es primo que te muestre el valor.

No te compliques tanto.

Otra recomendación, aprende a hacer trazas :)
Para saber si es primo, ten en cuenta que te podrias evitar el caso de ver si es divisible por 1, puesto que siempre te dira que si. Simplemente con que SOLO sea divisible por si mismo es suficiente.
Vamos desde i=2 hasta ElNumero Que Deseas saber si es primo ;)
2 respuestas