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;
}