![](/img/trans.png)
[英]I have a Python list of the prime factors of a number. How do I (pythonically) find all the factors?
[英]How can i find Prime factors
def fi_da_prfac(var):
fac = []
prfac = []
z = range(2, (var/2)+1)
z.append(var)
for t in z:
if var == t:
prfac.append(t)
z = range(2, (var/2)+1)
z.append(var)
break
else:
if var % int(t) == 0:
prfac.append(t)
var = var/t
del z
z = range(2, (var/2)+1)
z.append(var)
del t
return prfac
我是编码初学者。 我正在尝试编写代码来查找给定数字的质数分解。 如果我们分析代码,我想要做的是,如果我找到一个因素,我想再次启动for循环即。 从 t = 2 开始 for 循环。我没有找到任何方法来做到这一点。 所以我最后删除了“t”。 然而,代码没有给出所需的输出。 我尝试了很多来调试它,但不能。 请帮忙
您所缺少的难题的基本部分是 yield 运算符,这使函数充当生成器并在运行循环时保持其位置。 然而,需要注意的关键是输出将是一个生成器对象,必须循环遍历以提取所需的输出。
你的例子:
import math
def fi_da_prfac(var):
z = range(2, math.ceil(var/2)+1)
z.append(var)
for t in z:
if var % int(t) == 0:
yield t
prfac = yield_eg(15)
[fac for fac in prfac]
这是学习如何编码的一个很好的问题,但是正如其他人提到的,如果您需要,可以使用更简洁的预制函数来实现这一点。
厄舍伍德
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.