0298 - SumSec

From Bitnami MediaWiki
Revision as of 21:37, 21 March 2023 by Flaviu (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/298/sumsec 0298 - SumSec] ---- == Cerinţa == Se dă un şir format din n elemente, numere naturale. Calculaţi suma elementelor din secvenţa determinată de primul şi ultimul element prim. == Date de intrare == Fişierul de intrare sumsec.in conţine pe prima linie numărul n; urmează cele n elemente ale vectorului, dispuse pe mai multe linii şi separate prin spaţii. == Date de ieșire == Fişierul de ieşire sumsec.out va con...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: 0298 - SumSec


Cerinţa

Se dă un şir format din n elemente, numere naturale. Calculaţi suma elementelor din secvenţa determinată de primul şi ultimul element prim.

Date de intrare

Fişierul de intrare sumsec.in conţine pe prima linie numărul n; urmează cele n elemente ale vectorului, dispuse pe mai multe linii şi separate prin spaţii.


Date de ieșire

Fişierul de ieşire sumsec.out va conţine pe prima linie numărul S, reprezentând suma calculată.


Restricţii şi precizări

  • 1 ≤ n ≤ 1000
  • elementele şirului vor avea cel mult 9 cifre
  • şirul va conţine cel puţin un element prim

Exemplu

Intrare
8
12 10 15 7 17 10 19 14
Ieșire
53


Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line>

  1. 0298 - SumSec

def is_prime(n):

   if n < 2:
       return False
   for i in range(2, int(n**0.5)+1):
       if n % i == 0:
           return False
   return True


n = int(input()) numbers = list(map(int, input().split()))

sum_of_seq = 0 for i in range(n):

   if is_prime(numbers[i]):
       for j in range(i+1, n):
           if is_prime(numbers[j]):
               sum_of_seq += sum(numbers[i:j+1])
               break

print(sum_of_seq)


</syntaxhighlight>