我是 Python 新手,我最近才用 Java 编程。我正在用 Python 编写一个基本程序来打印第 1000 个素数,虽然我确实让它工作了,但由于某种原因,它也会打印出接下来的 7 个数字,除非我使用了不必要的中断:
import math
n=2
location =0
while location < 999 :
if location == 998 :
print n
n=n+1
srn = math.sqrt(n)
srn = int(srn)
while srn > 1 :
if n % srn == 0 :
break
elif srn==2 and n%srn != 0 :
location = location+1
srn = srn-1
印刷
7919
7920
7921
7922
7923
7924
7925
7926
但
while location < 999 :
if location == 998 :
print n
break
n=n+1
srn = math.sqrt(n)
srn = int(srn)
while srn > 1 :
if n % srn == 0 :
break
elif srn==2 and n%srn != 0 :
location = location+1
srn = srn-1
印刷
7919
谁能告诉我为什么会这样?另外,当我试图解决这个问题时,我发现 shell 只会打印一次,然后如果我复制代码,无论我是否更改它,它都不会打印任何东西。每次我想更改代码时,我都需要重新启动 shell。