【发布时间】:2014-01-31 18:51:46
【问题描述】:
我一直在尝试用 Python 制作一个素数生成器,基本上是将 thisScratch 项目移植到 Python 术语中,然后将素数写入文本文档。
但由于某种原因,它不起作用,我不知道为什么,因为它只是在写数字。
def primenumbers():
j = 2
f = open("primes.txt", "w")
primes = []
notprimes = []
ask = input("how many primes? ")
while len(primes) < int(ask):
k = 2
while not(k==j) or not(j%k==0):
k = k + 1
if k == j:
primes.append(j)
f.write(str(j)+"\n")
else:
notprimes.append(j)
# if len(primes)%1000 == 0:
# print("There have been " + str(len(primes)) + " primes counted so far")
j = j + 1
print("Primes written to file 'primes.txt', " + str(len(primes)) + " written")
f.close
return(" ")
因此,程序会询问用户它应该生成多少个素数,然后它应该从 k=2 重复到 j = j+1,直到达到那个素数。
另外,如果可能的话,我希望注释掉的 IF 语句能够正常工作,因为当包含它时,它会多次重复它所在的素数。 编辑:添加运行时发生的情况
how many primes? 1500
There have been 1000 primes counted so far
There have been 1000 primes counted so far
There have been 1000 primes counted so far
There have been 1000 primes counted so far
There have been 1000 primes counted so far
There have been 1000 primes counted so far
There have been 1000 primes counted so far
There have been 1000 primes counted so far
Primes written to file 'primes.txt', 1500 written
【问题讨论】:
标签: python primes mit-scratch