Автор | Сообщение |
|
Отправлено: 30.01.23 15:58. Заголовок: ege17 задача 300 что то не идет
Всем доброго здравия! Подскажите, кто может, что то не идет ответ, не могу понять в чем причина 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)) Спасибо!
|
|
|
Ответов - 1
[только новые]
|
|
|
Отправлено: 31.01.23 04:56. Заголовок: Понял, попался на ус..
Кажется понял, попался на условии!!! ...в которых хотя бы одно число делится на сумму цифр двух других чисел в тройке читал как ...в которых хотя бы одно число делится на сумму двух других чисел в тройке Кому интересно, вот код, длинновато правда: 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))
|
|
|