Почему массив первый раз проходит, а на второй начинает ругаться? [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

Проблема была в том, что делитель, который идёт в массив может быть всего один. Поэтому нужно проверять количество делителей.

→ Ссылка