python - 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)
解决方案
您当前的方法不适用于时间限制 - 完成时间太长。
首先尝试此代码,并找出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
推荐阅读
- django - django表单的两阶段提交
- codeigniter - 页码 url 分页 CodeIgniter
- python - 我正在尝试登录 discord 但我收到错误代码
- javascript - FullCalendar React - 如何将 selectConstraint 与 Display Background & Inverse 的背景事件一起使用
- python - Pickle Telethon 消息抛出“无法腌制 '_asyncio.Future' 对象”
- sql-server - 如何根据前一行获取下一行值,不包括 SQL Server 中的周末?
- javascript - 滚动元素内 HTML 元素的边界矩形
- google-cloud-platform - GCP PubSub 长轮询
- angular - 我应该如何根据 Angular 中的 Cookie 设置来管理模块的加载?
- autodesk-forge - Autodesk Forge Viewer - 近端和远端剪裁问题