Python中的Prime分解

时间:2015-04-27 14:29:02

标签: python

我在网上发现了这段代码,它基本上通过将给定数字分解为其主要因子并列出它们来起作用。

def primefactors(x):
factorlist=[]
loop=2
while loop<=x:
    if x%loop==0:
        x/=loop
        factorlist.append(loop)
    else:
        loop+=1
return factorlist

现在我明白这段代码的工作原理。它从2开始采用数字'循环',并查看它是否可以分为数字x。如果是,则将其添加到列表中,如果不是,则添加1并重复该过程。但是我不确定这一部分。

x/=loop

此运算符'/ ='做什么以及如何防止更大的非素数出现在列表中?

感谢所有帮助

2 个答案:

答案 0 :(得分:2)

x /= loop相当于x = x / loop

由于你将x除以loop,直到循环不再是x的因子,到达任何复合数时,你已经将所有的素数因子分开,所以复合number不会是x当前值的一个因子。

答案 1 :(得分:0)

/ =除以AND

它将左操作数与右操作数分开,并将结果赋值给左操作数

示例: c / = a等于c = c / ac / = a等于c = c / a