0298 - SumSec
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>
- 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>