No acabo de entender tu algoritmo...
Yo lo haría tal que así:
Código C:
Ver original#include <stdio.h>
#define MAX 100
int main()
{
unsigned int i = 2;
unsigned int j = 2;
unsigned int Contador = 0;
short primo = 1; // 1 significa true, 0 significa falso
while (Contador < MAX)
{
for (j = 2; j <i;j++)
if (i%j == 0)
{
j = i; // Forzamos la salida del bucle for
primo = 0; // No es primo
}
if (primo == 1)
{
Contador++;
printf("El numero %d es el primo %d \n",i
,Contador
); }
i++;
primo = 1;
}
return 0;
}