【发布时间】:2018-12-30 15:32:55
【问题描述】:
我试图创建一个小程序来计算直到某个数字(输入)之前有多少个素数
def count_primes(num):
for i in range(num + 1):
primes = [2]
if i % range(2,i) != 0:
primes.append(i)
return len(primes)
当我运行我的程序时,我得到了一个错误:
TypeError: unsupported operand type(s) for %: 'int' and 'range'
我不明白如何更正我的程序。
【问题讨论】:
-
您认为
i % range(2,i)应该是什么? -
表示
i % range(2,i)没有意义。你不能用一个整数除以一个范围来找到余数。 -
我认为您使用的是素筛分,但到目前为止不是正确的尝试。
-
...也许你想要
any(i%d for d in range(2,i))? Python 不会自动“矢量化”操作...
标签: python int range typeerror