【问题标题】:Prime Factorization in PythonPython中的素数分解
【发布时间】:2015-04-27 14:29:01
【问题描述】:

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

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

这个运算符'/='有什么作用,它如何防止更大的非素数出现在列表中?

感谢大家的帮助

【问题讨论】:

  • /= 将 LH 除以 RH 并将结果放入 LH。即,X/=3 将 X 除以 3,然后将结果放入 X。
  • x /= loop 等同于写x = x / loop

标签: python


【解决方案1】:

x /= loop 等价于x = x / loop

由于您将 x 除以 loop 直到循环不再是 x 的因数,所以当您得到任何合数时,您已经除掉了它的所有质因数,所以合数将不是 x 的当前值的一个因子。

【讨论】:

    【解决方案2】:

    /= 除法与

    将左操作数与右操作数相除并将结果分配给左操作数

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 2014-07-11
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多