Allora ho implementato un codice, dopo alcune pene, che mi stampi tutti i numeri primi precedenti ad un certo numero arbitrario da inserire. Però vorrei sapere innanzitutto come posso fare per impedire al programma di terminare, e che quindi alla fine mi richieda "vuoi inserire un altro numero?" ed in secondo luogo, come impedire che se inserisco della spazzatura "ad esempio come "asd" o "la vispa teresa" o "55rt" o "0.003" ) il programma non vada in crash, ma mi getti fuori una frase del tipo "hai inserito dello schifo, riprova".

Ecco il codice:
codice:
 #include <iostream>
 #include <stdlib.h> 
 #include <iomanip>

 using namespace std;
 bool Premiere(int n) {

 if (n <=0) return false;
 if (n <= 2) return true;
 if (n % 2 == 0) return false;
 for (int i = 3; i < n/2; i = i + 2)
 if (n % i == 0) return false;
 return true;
 };
 int main() {
 int z;
 do {
 cout << "Fino a che numero vuoi che ti trovi i numeri primi? ";
 cin >> z;
 } 
 while (z <= 0);
 for (int i = 2; i <= z; i++)
 if (Premiere(i))
 cout << setw(3) << i;
 else cout << setw(3) << (i%20==0 ? '\n' : ' ' );

 return 0;
 };
Grazie a tutti!!!