【问题标题】:I cant figure out whats wrong with this code (python) [duplicate]我无法弄清楚这段代码有什么问题(python)[重复]
【发布时间】:2015-04-05 07:34:57
【问题描述】:
def primefactors():
    prime_list = []
    n = 600851475143
    for i in range(0, n):
        if i % n == 0:
            prime_list.append(i)
    return prime_list


print (primefactors())

我想打印出我存储在 prime_list 中的数字

我没有收到任何错误,但它没有打印任何内容..

【问题讨论】:

  • 因为 if 条件永远不会被评估为 True。
  • 您正在查找可以被600851475143 整除的数字,而不是质因数。 0600851475142 之间没有这样的数字,这就是你的循环。因此,您的列表是空的。
  • 600851475143这个数字很可疑……有在线课程问题吗?
  • @BhargavRao:这是欧拉计划。见Python Finding Prime Factors

标签: python


【解决方案1】:

看来你需要在这里交换 i 和 n:

i % n

不过,这段代码不会给你主要因素,只是你的 n 可以被整除的数字。

【讨论】:

  • 您还需要将范围更改为从 1 而不是 0 开始
猜你喜欢
  • 1970-01-01
  • 2018-05-16
  • 2013-11-21
  • 2011-08-15
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
相关资源
最近更新 更多