Visto che la consegna chiede di fare una funzione che trovi i primi
tot numeri primi, non sarebbe sensata una cosa tipo questa?
void genera_primi( int *v, unsigned int q ) {
if( NULL != v ) {
memset( v, 0, q*sizeof(*v) ); // azzera il contenuto del vettore
if( 0 < q ) {
unsigned int i, n;
*v = 2; // per togliersi dai piedi d'un botto i numeri pari
for( i=1, n=3; 0<q; n+=2 ) {
unsigned int j, divisibile = 0;
for( j=1; j<i && !divisibile; ++j )
divisibile = 0==n%v[j];
if( !divisibile && j==i ) {
v[i++] = n;
--q;
}
}
}
}
}
L'idea è avere una funzione che riceva in ingresso l'indirizzo a un vettore di interi con spazio sufficiente per q elementi, vettore nel quale la funzione possa collocare i primi q valori della serie dei numeri primi (2, 3, 5, 7...).