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