我正在尝试解决下面详述的投影仪难题。我当前的函数适用于数字 1 到 10,但是当我尝试 1 到 20 时,它只会永远循环而没有结果。
2520 是可以除以 1 到 10 的每个数字而没有任何余数的最小数字。能被 1 到 20 的所有数整除的最小正数是多少?
def calculate():
results = dict()
target = 20
num_to_test = 1
while len(results) < target:
for j in range(1, target+1):
results[num_to_test] = True
if num_to_test % j != 0:
# current num_to_test failed in the 1-10, move on
del results[num_to_test]
break
num_to_test += 1
return min(results)
任何人都可以看到逻辑中的任何问题,特别是我想知道为什么它适用于 10 的目标,而不是 20 的目标。谢谢