¿Cuál es una forma eficiente de encontrar un primo aleatorio entre$4000000000$ y$4294967291 $ en C ++?
Esto es lo que escribí, pero es ridículo:
unsigned long long rand_prime()
{
vector<unsigned long long> vect_prime;
int count = 0;
for( unsigned long long i = 4000000000 ; i <= 4294967291 ; ++i )
{
for( unsigned long long j = 1 ; j <=i ; ++j )
{
if( i % j == 0 )
{
++count;
}
cout << "CAT";
}
if( count == 2 )
{
vect_prime.push_back( i );
}
cout << "DOG";
count = 0;
}
return vect_prime[ rand() % vect_prime.size() ];
}
Lleva mucho tiempo llegar a DOG.