Top.Mail.Ru
Ответы

Что не так с кодом?

123456789
 numbers = set((int(n) for n in open("17.txt")))
ms, pairs = 0, set()
for n1 in numbers:
    for n2 in numbers:
        s = n1 + n2
        if s % 2 and n1 * n2 % 3 == 0:
            ms = max(ms, s)
            pairs.add(hash(tuple(sorted([n1, n2]))))
print(len(pairs), ms) #5619899 19993 -- должно быть 13931722 19993 

В файле со­дер­жит­ся по­сле­до­ва­тель­ность из 10 000 целых по­ло­жи­тель­ных чисел. Каж­дое число не пре­вы­ша­ет
10 000. Опре­де­ли­те и за­пи­ши­те в от­ве­те сна­ча­ла ко­ли­че­ство пар эле­мен­тов по­сле­до­ва­тель­но­сти, у ко­то­рых сумма нечётна, а про­из­ве­де­ние де­лит­ся на 3, затем мак­си­маль­ную из сумм эле­мен­тов таких пар. В дан­ной за­да­че под парой под­ра­зу­ме­ва­ет­ся два раз­лич­ных эле­мен­та по­сле­до­ва­тель­но­сти. По­ря­док эле­мен­тов в паре не важен.

Дополнен

inf-ege.sdamgia.ru/problem?id=37350

По дате
По рейтингу
Аватар пользователя
Профи

numbers = set((int(n) for n in open("17.txt")))
ms, pairs = 0, set()
for n1 in numbers:
for n2 in numbers:
s = n1 + n2
if s % 2 and n1 * n2 % 3 == 0:
ms = max(ms, s)
pairs.add(tuple(sorted([n1, n2])))
print(len(pairs), ms) # должно быть 13931722 19993