...cosa ha ke nn va la mia? il numero d operazioni sono al minimo 1 (se trova subito divisore) e al max n/2.

VaneX

in effetti...
da un altro forum:

http://www.itsistemi.net/viewtopic-271071.html
E' sufficiente qualche semplice accorgimento per migliorare
notevolmente le prestazioni:

codice:
bool calcolo(int n)
{
if (! n%2) return false;

int radice = int( sqrt(n) )

for (int j=3; j<=radice; j+=2)
{
if (!n%j)  return false;
}
return true;
}

con queste modifiche vengono considerati soltanto i numeri dispari fino
alla radice di n·
Per es· per testare se 2010545359 e' primo bastano circa 22 mila
confronti invece di 2 miliardi‚ e il tempo di esecuzione passa dal
minuto a qualche millisecondo·
Ovviamente per numeri molto piu' grandi (centinaia di cifre) il
problema resta comunque intrattabile·

Saluti‚

Fabio