【发布时间】:2020-06-23 21:15:29
【问题描述】:
我刚刚开始编写代码,并且一直在练习 Project Euler 中的一些基本数学问题。我只是在 Jupyter 笔记本中编写这些程序。我只在question 5,一个非常基本的提示和一个非常基本的答案,由于某种原因,实际运行代码并获得输出变得越来越困难。这是我要运行的代码:
nums = []
for n in range(1, 30000):
i = 1
while i < 11:
quo = n % i
if quo != 0: break
if quo == 0: i =+ 1
if i == 10 and quo == 0: nums.append(n)
print(nums)
当我运行它时,程序永远不会停止运行,因此永远不会给我输出。我认为它与代码没有任何关系,因为我之前运行过它并且它有效。我也尝试在 Spyder 中运行它,但遇到了同样的问题。这是我的电脑有问题,还是我运行代码的方式有问题?
对于上下文,这是我正在处理的欧拉提示:
“2520 是能被 1 到 10 的每一个数整除而没有余数的最小数。能被 1 到 20 的所有数整除的最小正数是多少?”
上面的代码只是试图重现示例结果(返回 2520)。
【问题讨论】:
-
if quo == 0: i =+ 1&while i < 11:i总是小于 11,所以循环永远不会停止。 -
明确一点,
i =+ 1表示将i设置为(正)1。如果你想增加i,你需要+=,而不是=+。