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

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

import math 

def isPrime(n):
    return n != 1 and n != 0  and all(n % t for t in range(2, n))

nums = list(map(int, input().split()))
primes = []
maxcount = count = 0

for num in nums:
    if isPrime(num):
        count += 1
        for i in range(len(nums)-1):
            if nums[i] <= nums[i+1]:
                primes.append(num)
    else:
        maxcount = max(count, maxcount)
        count = 0
maxcount = max(count, maxcount)

print(maxcount)
print(sum(primes))

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

ввод: 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


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

Автор решения: SergFSM

если пользоваться встроенными библиотеками не возбраняется, то можно попробовать такой вариант:

from itertools import groupby

strn = '20 -7 -7 -2 0 1 3 5 5 10'.split()

def isPrime(n):
    return n != 1 and n != 0  and all(n % t for t in range(2, n))

primes = [list(g) for k,g in groupby(map(int,strn),key=isPrime) if k]
print(primes)  # [[-7, -7, -2], [3, 5, 5]]
res = max(filter(lambda x: x==sorted(x),primes),key=sum,default=[])
print(res)  # [3, 5, 5]

print(len(res),sum(res))  # 3 13
→ Ссылка