Ich versuche, eine Funktion zu erstellen, die die Ganzzahl mit den meisten Teilern zurückgibt, wenn sie mit einer Liste versehen ist.Finde Ganzzahlen mit den meisten Divisoren
def number_of_divisors(k):
count = 0
for number in range(1, k+1):
if k % number == 0:
count += 1
return count
def max_divisors(list_i):
return(max(list_i, key = number_of_divisors))
Diese Funktion funktioniert einwandfrei. Aber wenn mit einer Liste wie [8,12,18,6] versehen, sind 12 und 18 für die maximale Anzahl von Teilern gebunden. Es gibt nur das erste Element mit der maximalen Anzahl von Teilern, d. H. 12. Ich möchte, dass es auch 18 zurückgibt. Wie erreiche ich das?
Diese Frage wird richtig gestellt, vorausgesetzt, der Code der OP schrieb aber bittet um Hilfe, um etwas zu lösen, er hat keine Ahnung wie. Dies verdient es nicht geschlossen zu werden, da es die SO-Regeln respektiert. –
Es ist erwähnenswert, dass im Allgemeinen eine 'number_of_divisors'-Funktion viel schneller als 'O (n)' gemacht werden kann. – Cireo