Рекурсивная программа Python для простого разложения числа
Я написал следующую программу для простого разложения на числа:
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
Ниже приведен вывод, который я получаю:
[2, 2, 3, 5, 5]
None
Altho»возвращаемое значение печатается правильно, возвращаемое значение, кажется, не печатает ничего, все время. Что мне не хватает?
Кроме того, как я могу улучшить программу (продолжая использовать рекурсию)