Пример при выводе: 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: Можно сделать эффективнее, но вроде никто не просил.