数値を素因数分解するために次のプログラムを作成しました。
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'、戻り値は適切に出力されますが、戻り値の後は常に何も出力されないようです。私は何が欠けていますか?
また、プログラムを改善するにはどうすればよいですか(再帰を引き続き使用します)