我在网上发现了这段代码,它基本上通过将给定数字分解为其主要因子并列出它们来起作用。
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
此运算符'/ ='做什么以及如何防止更大的非素数出现在列表中?
感谢所有帮助
答案 0 :(得分:2)
x /= loop
相当于x = x / loop
。
由于你将x除以loop
,直到循环不再是x的因子,到达任何复合数时,你已经将所有的素数因子分开,所以复合number不会是x当前值的一个因子。
答案 1 :(得分:0)
/ =除以AND
它将左操作数与右操作数分开,并将结果赋值给左操作数
示例: c / = a等于c = c / ac / = a等于c = c / a