首页 > 解决方案 > Python给我一个试图修改两个变量的错误

问题描述

我试图获得可被 1 到 20 的所有数字整除的最小数字。

问题出在i%j == 0. 它给了我这个错误:

ZeroDivisionError: integer division or modulo by zero

即使我用一个变量和一个常量尝试了同样的事情并且它通过了:

i % 2 == 0

我的代码:

i = 20
while True:
    k = 0
    for j in range(21):
        if i % j == 0:
            k += 1
    if k == 21:
        break
    i+= 1

print(i)

标签: pythonpython-3.x

解决方案


您当前的方法不适用于时间限制 - 完成时间太长。

首先尝试此代码,并找出trick节省计算时间的方法。

primes = [2,3,5,7,11,13,17,19]
prod = 1

for p in primes:
    n = 2
    prod *= p
    while (p**n < 21):
        prod *= p
        n += 1
print(prod)   # 232_792_560

推荐阅读