【发布时间】:2017-12-09 20:25:56
【问题描述】:
count=5 #Nth prime number
i=10 #number to be checked
while (count!=1000): #until its not 1000th
if i%2==0 or i%3==0 or i%5==0 or i%7==0: #to check non prime
i=i+1 #next number initialized
else: #for prime
count=count+1 #move to next position
if count==1000: #if is 1000th position
print i," is 1000th prime." #print prime
我正在考虑 2,3,5,7 已经被称为素数并且从 10 开始。
它给出“11 是第 1000 个素数”作为输出。 我猜某处存在逻辑错误。
【问题讨论】:
-
我认为你应该告诉我们这有什么问题
-
您应该解释为什么您认为存在问题。
-
您将任何不能被 2、3、5 或 7 整除的数都算作质数,但是有许多非质数不能被其中任何一个整除。您需要检查目前发现的所有素数。
-
嗯,是的。没有人说寻找素数是一个计算成本低的问题。
-
想想我 11 岁时循环内部会发生什么。它怎么会到 12 岁?
标签: python python-2.7