<div class="gmail_quote">Il giorno 02 agosto 2011 17:49, matteo <span dir="ltr"><<a href="mailto:matteo.web73@gmail.com">matteo.web73@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div bgcolor="#FFFFFF" text="#000000">import math<br>
def primi(N):<br>
<br>
""" Print first N prime numbers """<br>
<br>
primes=[2]<br>
x=3<br>
while x<N:<br>
valid=True<br>
for divi in primes[:int(math.sqrt(x))]:<br>
if x%divi==0:<br>
valid=False<br>
break<br>
if valid:<br>
primes.append(x)<br>
x=x+2<br>
return primes<br>
<br>
ecco ;) è sempliciotto, ma gia ho pensato a qualcosa per
migliorarlo, voi che ne pensate?<br>
</div>
<br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div><br>Qualche idea:<div>- non occorre mettere il 2 fin da subito nella lista dei primi dato che poi, incrementando di 2 ottieni sempre numeri dispari.</div><div>- l'istruzione: primes[:int(math.sqrt(x))] costruisce, ogni volta che viene chiamata, una nuova lista. Dovresti riuscire a far fare il ciclo in questo modo: for divi in primes: ... </div>
<div>- sostituire l'operazione % con la funzione divmod può permetterti di evitare la radice quadrata.</div><div>- non dovrebbe neppure essere un grosso problema evitare l'uso della variabile isvalid.</div><div><br>
</div><div>Io proverei i tempi con questi cambiamenti, per avere ulteriori miglioramenti bisogna, penso, impostare l'algoritmo in modo diverso utilizzando le istruzioni di Python di trattamento delle liste.</div><div>
<br></div><div>Prova e facci sapere dei miglioramenti nei tempi<br clear="all"><br>-- <br><br>Daniele<br><br><a href="http://www.fugamatematica.blogspot.com">www.fugamatematica.blogspot.com</a><br><br> giusto!<br> nel verso<br>
forse è perché non guardiamo le cose<br> Quando non ci capiamo,<br><br>
</div>