# PBinfo #298 – SumSec – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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:
sumsec.in

8
12 10 15 7 17 10 19 14
sumsec.out

53
Explicație
7+17+10+19=53

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sumsec.in");
ofstream fout("sumsec.out");
int n, a[1005];
int main(){
	fin >> n;
	for(int i=1;i<=n;++i)
		fin >> a[i];
	int start=0,stop=n+1 ,prim;
	do{
		start++;
		prim = 1;
		int x = a[start];
		if(x<2)
			prim = 0;
		if(x%2==0 && x>2)
			prim = 0;
		for(int d=3 ; d*d<=x ; d+=2)
			if(x%d == 0)
				prim = 0;
	}while(!prim);
	do{
		stop--;
		prim = 1;
		int x = a[stop];
		if(x<2)
			prim = 0;
		if(x%2==0 && x>2)
			prim = 0;
		for(int d=3 ; d*d<=x ; d+=2)
			if(x%d == 0)
				prim = 0;
	}while(!prim);
	cout << start << " " << stop;
	long long int s = 0;
	for(int i=start ; i<=stop ; ++i)
		s += a[i];
	fout << s;
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/298)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/298/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-298/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
