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:
Grazie a tutti!!!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; };