из данного списка получить массив подряд идущих простых чисел и найти их сумму, если таких массивов несколько, найти тот массив который длиннее и сумм

Дан список чисел который я ввожу с экрана, нужно найти наибольшее количество подряд идущих простых чисел в порядке возрастания (отрицательные тоже считаются) и найти их, если этих рядов несколько, считать тот ряд у которого сумма этих простых чисел больше. вот сам код

from itertools import groupby

nums = map(int, input().split())


def isPrime(n):
    if n < 0:
        n = -n
    elif n == 0 or n == 1:
        return False
    for a in range(2, (n//2)+1):
        if n % a == 0:
            return False
    return True

primes = [list(g) for k,g in groupby(map(int,nums),key=isPrime) if k]

res = max(filter(lambda x: x==sorted(x),primes),key=sum,default=[])

print(len(res), sum(res))

вот пример ввода и вывода:

ввод: 20 -7 -7 -2 0 1 3 5 5 10

вывод: 3 13

тут посчиталось что сумма ряда 3 5 5 больше чем -7 -7 -2, из за этого взяли 3 5 5

еще один пример ввод: 5 -2 -2 10 8 вывод: 2 -4 вроде бы на вот эти вводы код работает, но когда ввожу 7 2 7 4 4 10 12 7 -2 -4 7 мне почему разбивает на эти массивы: [7, 2, 7], [7, -2], [7] a должен был на эти [7], [2, 7], [7], [-2], [7] смысл в том, что он ищет среди этих массивов самый длинный а потом считает их сумму, в этом случае, это массив [2, 7] не могу понять, почему иногда код работат , а иногда нет. может выдать мне, когда ввожу, например: 2 2 2 2 2 7 5 он разбивает на массив: [2, 2, 2, 2, 2, 7, 5] а не на массивы [2, 2, 2, 2, 2, 7], [5]


Ответы (0 шт):