Originariamente inviato da abbax
mmm... le funzioni purtroppo non le so fare, quindi mi tocca continuare con questo metodo...
In genere è tra le prime cose che si imparano, ma comunque si può fare anche senza ( by the way, quando scrivi "int main()" stai definendo una funzione )

Comunque la struttura del controllo dovrebbe essere più o meno questa:

v[i] è 2 o 3? Bene, allora è primo, quindi stampalo;

v[i] è divisibile per 2? Bene, allora qualsiasi sia il suo valore, di sicuro non è primo (perché è divisibile almeno per 2!) quindi non lo stampare;

per j che va da 3 a v[i]/2 (con incremento di 2), verifica che v[i] non sia divisibile per j. Se non è divisibile per nessun valore di j, allora è primo, quindi stampalo.

Perché ho detto "con incremento di 2" ? Perché se siamo giunti a questo ciclo iterativo, abbiamo già constatato col secondo controllo che v[i] NON è divisibile per 2, cioè è dispari... e allora nel ciclo iterativo possiamo evitare di calcolare il modulo di v[i] con i multipli di 2, perché tanto il numero è dispari quindi siamo sicuri che per ogni j pari risulterà v[i] & j != 0.

Prova a scrivere un po' di codice ora.