处理大量数字时如何减少python中的时间限制

时间:2019-04-04 15:07:00

标签: python

由于val很大,因此它不执行代码。我们该怎么解决这个问题。

val = 78478277380 
i = 2
while i < val:
   if val % i == 0:
       print(i)
   i += 1

我想要所有的因素。

2 个答案:

答案 0 :(得分:0)

在我的机器上运行它,我得到前五个因素:2, 4, 5, 10, 20,然后它安静了一段时间。这不是因为它停止运行,而是因为我很确定下一个因素是3923913869,这将需要一段时间才能找到。 Source

答案 1 :(得分:0)

如果打印所有数字,则可以更好地了解正在发生的事情:

val = 78478277380
i = 2
while i < val:
   print(str(i) + "is a not factor")
   if val % i == 0:
       print(str(i) + "is a factor")
   i += 1

问题在于,这个数字并没有太多因素。