Я только начинаю, и я написал следующий код и пытался его отладить в течение нескольких часов. Я не понимаю здесь ничего общего. Я хочу, чтобы код дал мне список простых чисел до длины, указанных в параметре вызова. Я начал со списком первых четырех, просто чтобы добиться успеха и упростить кодирование. Основной алгоритм, который я хочу использовать, состоит в том, чтобы добавить два к последнему члену списка, а затем проверить, является ли последний номер в списке простым, определяя, разделяют ли его остальные члены, начиная с первого члена. Я хотел бы прекратить проверку в тот момент, когда значение делителя превышает квадратный корень из числа кандидатов, но я не понял, как это сделать.Создание списка простых чисел. - beginner
Я получаю сообщение об ошибке в строке 5, которую я не могу понять, но я уверен, что есть и другие проблемы с кодом.
def prime_list(length):
L = [2, 3, 5, 7]
j = 9
while length > len(L):
prime = True
i = 0
for divisor in L:
while divisor in range (0, len(L) - 2) and prime == True:
if j % divisor == 0:
prime = False
if prime == False:
j = j + 2
else:
L = L.append(j)
return L
Какая ошибка? – karthikr
Возможно, я не читаю достаточно близко, но 'i', похоже, не используется снова после того, как вы присвоите ему значение 0. –
Ваш цикл 'while' будет работать вечно, если' divisor' не является делителем. – Blender