-
~{Skydrake™}».
User deleted
CITAZIONE (TTDH @ 9/11/2009, 18:33)CODICEdef numero_primo(numero):
numerod = ""
for i in range(2, numero):
if numero % i == 0:
numerod += str(i) + " / "
if numerod != "": return "%s, divisibile per %s" % ("numero non primo", numerod)
else: return "numero primo"
Mi sembra che questo sia l'algoritmo più pesante in questo topic
Come ho detto precedentemente, basta fare il ciclo da 2 a radice di N, e non da 2 a N
Inoltre, se ti servono tutti i divisori, basta che (sempre nel ciclo da 2 a radice di N) controlli se il numero è divisibile per la variabile contatore. Se lo è, aggiungi ai divisori sia la variabile contatore, sia (N / variabile contatore).