Salve a tutti. Sto provando a generare un numero random primo minore di 1000 ma nel codice c'è qualcosa che non va e, essendo alle prime armi, non riesco a capirlo...Il codice dovrebbe stampare a video il valore A (che dovrebbe essere un intero compreso minore di 1000) ma inspiegabilmente ritorna sempre 4196208. Potreste aiutarmi? :-(
codice:#include<ctime> #include<cstdlib> #include<iostream> using namespace std; bool isPrime(int); int main() { int A; bool value = false; srand((unsigned)time(NULL)); while(value){ A = rand() % 1000; if(isPrime(A)) value = true; else value = false; } cout << A << endl; return 0; } bool isPrime(int x) { int max = static_cast <int> (x); /* Cast it to remove warnings */ if (x <= 0 || x == 1 || (x % 2 == 0 && x != 2)) return false; for (int i = 3; i < max; i += 2) if (x % i == 0) return false; return true; }