Comunque, non capisco perche' utilizzi un vettore per la ricerca dei numeri primi ...
Sembra che ci sono riuscito a farlo senza vettore...posto il codice vediamo se va bene o se almeno è come lo pesavi tu...
codice:
#include <stdio.h>
#include <stdlib.h>

int main ()
{
    int dim;
    int i, j, flag=0;
    
    printf ("Inserire valore(maggiore di 2): ");
    scanf  ("%d", &dim);
    
    for ( i=2; i<=dim; i++ ) {
        flag=0;
        for ( j=2; j<i && flag==0; j++ ) {
            if ( (i%j) == 0 )
               flag=1;
        }
        if ( flag == 0 )
           printf ("%4d", i);
    }
    printf ("\n");
    system ("pause");
}