【发布时间】:2016-10-02 04:41:14
【问题描述】:
我试图在不使用循环的情况下产生一个数字的所有素因子的总和。但是如果 prime_factor(m, k) 的结果大于 2,当在 factor=prime_factor(m, k) 之后转到 main(n) 时,因子将为 None
def prime_factor(m, k):
if m%k==0:
return k
else:
prime_factor(m, k+1)
def main(n):
if n<2:
return 0
if n==2:
return n
else:
factor=prime_factor(n, 2)
return factor+main(n//factor)
【问题讨论】:
-
只返回递归调用...
标签: python recursion sieve-of-eratosthenes prime-factoring