Я пытаюсь создать генератор простых чисел в Python, в основном портируя this Сценарий проекта в термины 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(" ")
Таким образом, программа запрашивает у пользователя, сколько простых чисел он должен генерировать, и он должен затем повторить от к = 2 до J = J + 1 до тех пор, что число простых чисел, не будет достигнуто.
Кроме того, если это возможно, я хотел бы, чтобы работа с комментарием IF работала, поскольку, когда это было включено, оно повторяло то, что простое число было несколько раз. EDIT: добавление, что происходит при запуске
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
Это работает. Должен ли он работать и в закомментированном разделе? EDIT: Нет, нет. Спасибо, в любом случае. – L0neGamer
Если вы хотите распечатать, какое именно число было найдено, тогда вы можете распечатать его внутри случая «if j == k:» до или после записи простого числа в текстовый файл. Примите ответ, если это было полезно. – Vipul
Что я ищу в комментариях, это каждые 1000 простых чисел, которые терминал говорит, сколько простых чисел было создано, потому что в действительности ничего не происходит на экране. Когда число простых чисел равно 1500, существует 8 «До сих пор насчитывалось 1000 простых чисел». – L0neGamer