Program rekursywny Pythona do inicjowania mnożenia liczby
Napisałem następujący program, aby zaliczyć liczbę mnogą:
import math
def prime_factorize(x,li=[]):
until = int(math.sqrt(x))+1
for i in xrange(2,until):
if not x%i:
li.append(i)
break
else: #This else belongs to for
li.append(x)
print li #First print statement; This is what is returned
return li
prime_factorize(x/i,li)
if __name__=='__main__':
print prime_factorize(300) #Second print statement, WTF. why is this None
Oto dane wyjściowe, które otrzymuję:
[2, 2, 3, 5, 5]
None
Altho ', zwrócona wartość jest drukowana poprawnie, po zwróconej wartości wydaje się, że przez cały czas nie drukuje. czego mi brakuje?
Ponadto, jak mogę ulepszyć program (kontynuując używanie rekursji)