我写了一个小代码,它应该从一个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
您需要先读取每一行,然后遍历文本文件的每一行。然后可以将每个素数附加到新列表中。(如果每个数字都在新行上)例如:
如果素数在新行上:
如果素数都在一行上,用空格(“”)隔开:
这两种方法都应该奏效
发现了问题。我的Primes1.txt文件有以下数字:2,3,5,7
在这一行:n=int(primelist[len(primelist)-1])+1,n被设置为8
从这一点来说,每一个n都可以被2整除(索引0),因为我的n=n+2
相关问题 更多 >
编程相关推荐