Форум » Обработка целых чисел » ege17 задача 300 что то не идет » Ответить

ege17 задача 300 что то не идет

s11kai: Всем доброго здравия! Подскажите, кто может, что то не идет ответ, не могу понять в чем причина [pre2] with open('17-300.txt') as f: a = [int(x) for x in f.readlines()] ma=0 for j in range(len(a)): if a[j]>ma and a[j]%401==0: ma=a[j] k=[] for j in range(len(a)-2): x = a[j] y = a[j+1] z = a[j+2] s = x+y+z if (x % (y + z)==0) or (y % (z + x)==0) or (z % (y + x)==0) and s > ma: k.append(s) print(len(k),min(k)) [/pre2] Спасибо!

Ответов - 1

s11kai: Кажется понял, попался на условии!!! ...в которых хотя бы одно число делится на сумму цифр двух других чисел в тройке читал как ...в которых хотя бы одно число делится на сумму двух других чисел в тройке Кому интересно, вот код, длинновато правда: [pre2] with open('17-300.txt') as f: a = [int(x) for x in f.readlines()] ma=0 # ищем максимальное кратное 401 for j in range(len(a)): if a[j]>ma and a[j]%401==0: ma=a[j] def q(n): # ищем сумму цифр su = 0 while n: su = su + n%10 n = n//10 return su def f(x,y,z): # делится ли хотя бы одно число на сумму цифр двух других return x % (q(y) + q(z)) == 0 or y % (q(z) + q(x)) == 0 or z % (q(x) + q(y)) == 0 k=[] for j in range(len(a)-2): x = a[j] y = a[j+1] z = a[j+2] s = x+y+z if f(x,y,z) and s > ma : k.append(s) print(len(k),min(k)) [/pre2]



полная версия страницы