【发布时间】:2017-06-13 01:58:45
【问题描述】:
在 Python2.7 中,我想通过在结果上重复素数因子之和 (sopfr) 函数直到它达到素数来为给定整数生成有限序列。以下 sopfr(n) 的代码来自 OEIS A001414。
from sympy import factorint
def sopfr(n):
return sum(p*e for p, e in factorint(n).items())
>>>sopfr(888)
46
>>>
我想修改这段代码,让它给出这个结果
>>>sopfrs(888)
46 25 10 7
>>>
其中 46 = sopfr(888), 25 = sopfr(46)... 以此类推,直到在素数处终止,在本例中为 7。我已经阅读了一些内容并尝试了 while 和 @ 987654324@ 循环没有运气。实验,我肯定会很好笑。原谅这个问题的新手性质,任何帮助将不胜感激。
【问题讨论】:
-
感觉 sopfrs 可能看起来像:如果 n 是素数 (sopfr(n)) 否则执行打印 sopfr(n) 并调用 sopfrs(sopfr(n)) 的块
标签: python-2.7 math recursion primes sequences