Почему массив первый раз проходит, а на второй начинает ругаться? [Python]
N = 452022
count = 0
while count !=5:
de = []
di = N // 2
d = 2
for d in range(2,di):
if N % d == 0:
de.append(d)
M = (de[0] + de[-1])
if M % 7 == 3:
print(N, M)
de = []
count +=1
N +=1
M = (de[0] + de[-1]) IndexError: list index out of range
Ответы (1 шт):
Автор решения: Adj
→ Ссылка
N = 452022
count = 0
while count !=5:
de = []
di = N // 2
for d in range(2,di+1):
if N % d == 0:
de.append(d)
if len(de) > 1:
M = (de[0] + de[-1])
if M % 7 == 3:
print(N,M)
count +=1
N +=1
Проблема была в том, что делитель, который идёт в массив может быть всего один. Поэтому нужно проверять количество делителей.