...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