Пример при выводе: 8 = 5 + 3, 8 = 3 + 5. Как после первого найденного числа вернуться в цикл

for t in range(4, 10000):
    if t%2 == 0:
        for i in range(len(m)):
            for j in range(len(m)):
                if t == m[i] + m[j]:
                    print(t,"=", m[j],"+", m[i])

Ответы (3 шт):

Автор решения: Виктор

Если я правильно понял, то так например:

for t in range(4, 10000):
    def search(t):
      if t%2 == 0:
        for i in range(len(m)):
            for j in range(len(m)):
                if t == m[i] + m[j]:
                    print(t,"=", m[j],"+", m[i])
                    return
    search(t)
→ Ссылка
Автор решения: Эникейщик

У range() может быть не только верхняя граница, но и нижняя. Просто сделай

for j in range(i+1, len(m))

Тогда повторов не будет.

Ещё у range() может быть шаг. Сделай

for t in range(4, 10000, 2)

и тогда станет не нужна проверка на чётность.

Но на самом деле тут никакой перебор с кучей циклов не нужен. Задача решается простым вычитанием.

→ Ссылка
Автор решения: Qwertiy
for t in range(4, 10000, 2):
  for x in m:
    if t-x in m:
      print(t, "=", x,"+", t-x)
      break

PS: Можно сделать эффективнее, но вроде никто не просил.

→ Ссылка