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!!!