1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| entier_max = int(input("saisir un entier : "))
# Une liste-comprehension est bien plus élégante ici
liste_entiers = [i for i in range(1, entier_max+1)]
def suppr_multiples(liste, num):
if num > len(liste)/2:
return liste
new_num = 0 # On va stocker ici le prochain nombre premier.
# enumerate retourne un tuple (index_de_lélément, élément).
for i, el in enumerate(liste):
if el > num:
# Si num divise el, supprimer cet élément de la liste.
if not el % num:
del liste[i]
# Sinon, si le nouveau nombre premier na pas encore été trouvé, cest celui-ci*!
elif not new_num:
new_num = el
# Petit test final
if not new_num or num > len(liste)/2:
return liste
return suppr_multiples(liste, new_num)
print(suppr_multiples(liste_entiers, 2)) |
Partager