我尝试了project euler的问题10,并通过了,但我想:如果我将2百万以下的所有素数写入文本(.txt)文件怎么办呢?于是我继续修改主函数,它解决了这个问题,所以我不只是把它添加到一个变量(tot)中,而是将由生成器生成的素数写入文本文件。起初它起作用了,但忘记在每个素数后添加空格,所以输出有点像胡言乱语。
357111317192329313741434753
所以我将我的txt.write(str(next_prime))
修改为txt.write(str(next_prime) + ' ')
在这个微小的修改之后,输出完全是胡言乱语。
″‵‷ㄱㄠ″㜱ㄠ‹㌲㈠‹ㄳ㌠‷ㄴ㐠″
这是完整的函数代码:
def solve_number_10():
total = 2
txt = open("output.txt","w")
for next_prime in get_primes(3):
if next_prime < 2000000:
txt.write(str(next_prime) + ' ')
#total += next_prime
else:
print "Data written to txt file"
#print total
txt.close()
return
为什么会发生这种情况,我该如何使输出结果变得像这样
3 5 7 11 13 17 19