【发布时间】:2016-10-20 10:39:47
【问题描述】:
我今天开始学习 Python,我想创建一个程序来打印从 0 到 10 000 的所有素数。我设法让我的程序打印出直到 251 的所有素数,然后停止打印出数字。为什么会这样?
代码如下:
for numberToCheck in range(2,10000):
divider = 2
while numberToCheck > divider:
if numberToCheck % divider is 0:
break
else:
divider += 1
if numberToCheck is divider:
print(numberToCheck, "is a prime number.")
【问题讨论】:
-
那个`(反引号)会导致语法错误。您可能需要编辑它并删除代码部分末尾的 `,除非它是用于格式化的标记。
-
欢迎堆栈溢出!除了您的问题之外,您可以通过不检查大于
numberToCheck一半的数字的模数来使此功能的效率提高两倍。对于任何给定的numberToCheck,大于该数字除以二的数字不可能是它的除数之一。 -
@Alex 你不能把它限制在要检查的数字的平方根吗?
-
@Azor-Ahai 我想是的,是的!更高效:)
标签: python