В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите количество четверок последовательности, в которых только два элемента являются трехзначными числами, ровно один элемент делится на 18, а сумма элементов делится на сумму двух минимальных положительных элементов последовательности, кратных 17, и произведение элементов не превосходит квадрат максимального элемента последовательности, оканчивающегося на 69. В ответе запишите количество найденных четверок чисел, затем минимальный из квадратов сумм элементов таких четверок. В данной задаче под четверкой подразумевается четыре идущих подряд элемента последовательности.
Вот такой код у меня получился def f(x): if len(str(x)) == 3: return 1 else: return 0 def fa(y): if y % 18 == 0: return 1 else: return 0
ans = [] a = list(map(int,open('17 задание.txt'))) max69 = max([l for l in a if l %100 == 69]) n = sorted([l for l in a if l > 0]) for x in range(len(n)): for y in range(x + 1, len(n)): if (n[x] + n[y]) % 17 == 0: s = n[x] + n[y] break break for i in range(len(a)-3): if ((f(abs(a[i])) + f(abs(a[i+1])) + f(abs(a[i+2])) + f(abs(a[i+3]))) == 2) \ and ((fa(abs(a[i])) + fa(abs(a[i+1])) + fa(abs(a[i+2])) + fa(abs(a[i+3]))) == 1) \ and (abs((a[i] + a[i+1] + a[i+2] + a[i+3])) % s == 0) \ and (a[i] * a[i+1] * a[i+2] * a[i+3]) < max69**2: ans.append((a[i] + a[i+1] + a[i+2] + a[i+3])**2) print(len(ans),min(ans))
Вот такой код у меня получился
def f(x):
if len(str(x)) == 3:
return 1
else:
return 0
def fa(y):
if y % 18 == 0:
return 1
else:
return 0
ans = []
a = list(map(int,open('17 задание.txt')))
max69 = max([l for l in a if l %100 == 69])
n = sorted([l for l in a if l > 0])
for x in range(len(n)):
for y in range(x + 1, len(n)):
if (n[x] + n[y]) % 17 == 0:
s = n[x] + n[y]
break
break
for i in range(len(a)-3):
if ((f(abs(a[i])) + f(abs(a[i+1])) + f(abs(a[i+2])) + f(abs(a[i+3]))) == 2) \
and ((fa(abs(a[i])) + fa(abs(a[i+1])) + fa(abs(a[i+2])) + fa(abs(a[i+3]))) == 1) \
and (abs((a[i] + a[i+1] + a[i+2] + a[i+3])) % s == 0) \
and (a[i] * a[i+1] * a[i+2] * a[i+3]) < max69**2:
ans.append((a[i] + a[i+1] + a[i+2] + a[i+3])**2)
print(len(ans),min(ans))
У меня выводит 20, 73984, А ответ 10, 73984
Помогите, пожалуйста, найти ошибку в коде.