Python/Iterazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 56:
else:
n=n*3+1
</source>
 
Una delle tante implementazioni del '''Crivello di Eratostene''' usa un paio di cicli while:
 
<source lang=python>
def crivello(n):
"""Restituisce i numeri primi inferiori a n."""
c=range(2, n+1) # crea una lista con tutti i numeri
i=0 # inizializza l'indice
n=len(c) # calcola l'ultimo numero da processare
nr=n**0.5 # calcola l'ultimo numero da processare
while i<nr: # fin quando l'indice è minore di questo numero
if c[i]: # controlla che il numero puntato da i sia diverso da 0
j=i+1 # in questo caso inizializza j al valore successivo di i
while j<n: # fin quando j è minore di n
if c[j] % c[i] == 0: c[j]=0 # se l'elemento è divisibile per c[i] cambialo a zero
j+=1 # incrementa j
i+=1 # incrementa i
c=[e for e in c if e] # crea una nuova lista fatta dagli elementi non nulli di c
return c # restituisci questa lista che contiene solo numeri primi
</source>