Я пытаюсь решить эту проблему, и, несмотря на то, что я обнимаю ее, я зацикливаюсь снова и снова.
У меня есть список, составленный из одного элемента [2] и с учетом этого и зная, что для получения простого числа $ N $ я должен проверить, что у него нет простого множителя, меньшего или равного $ \ sqrt {N} $, сгенерируйте все простые числа от 3 до 100
Мой код следующий, и я постараюсь объяснить, как я его создал:
prime_numbers = [2]
for k in range(3,100): # k runs on all numbers to check them
for i in range (0,len(prime_numbers)): # i is the index of the elements in my list
if prime_numbers[i] <= sqrt(k): # first I need to check the sqrt condition
if k % prime_numbers[i] ==0: # check that element in list divides k
k+=1 # if so k++ and break the cicle
break
else:
i +=1 # otherwise go to the next elem of the list
else: #if the sqrt condition is not met I have found a prime number
value = k
prime_numbers.append(value)
Когда я запустить этот код он попадает в al oop без выхода, и я не могу определить, где проблема. Мое лучшее предположение было бы исправить самое отступное условие, но все попытки, которые я сделал, привели к провалу. Спасибо всем, кто готов принять участие.