我写了一个小代码,应该从txt文件中读取素数列表,并应该生成下一个。 为了检查我的数字是否为素数,我尝试对已经生成的列表中的每个素数进行除法。 但是,我的for循环保持为0,我不知道为什么。 这是我的代码:
primes = open("Primes1.txt").read().split()
primelist = []
for i in primes:
primelist.append(i)
print(primelist)
n = int(primelist[len(primelist) - 1]) + 1
print(n)
while n < 100 :
n_prime = 1
for i in range (len(primelist)) :
print(i)
if n % int(primelist[i]) == 0:
n_prime = 0
break
if (n_prime == 1) :
primelist.append(str(n))
print(primelist)
open("Primes1.txt", "a").write("\n" + str(n))
n = n + 2
答案 0 :(得分:3)
您需要先遍历文本文件的每一行,然后再读取每一行。然后,您可以将每个素数附加到新列表中。 (如果每个数字都换行),例如:
如果素数换行:
primeFile = open("Primes1.txt", "r")
primeList = []
for prime in primeFile:
primeList.append(prime)
如果所有质数都在一行中,并以一个空格(“”)分隔:
primeFile = open("Primes1.txt", "r")
primeList = []
for line in primeFile:
primesInLine = line.split()
for prime in primesInLine:
primeList.append(prime)
这两种方法都可以解决问题
答案 1 :(得分:0)
发现了问题。我的Primes1.txt文件具有以下数字:2,3,5,7
在这一行上:n = int(primelist [len(primelist)-1])+ 1,n设置为8
从这一点开始,由于我的n = n + 2,每个n都可以被2(索引0)整除