# PBinfo #4325 – suma_sim_rec – Rezolvare C++

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

## Enunț

Cerința
Se dă un vector cu n elemente, numere naturale, n fiind număr par. Să se calculeze suma elementelor din vector care formează perechi egal depărtate de capetele vectorului și care sunt prime între ele. 

Se vor defini și apela următoarele subprograme recursive:


citire, care citește de la tastatură cele n elemente ale unui tablou
cmmdc, care calculează cel mai mare divizor comun al celor două numere primite prin parametri
suma_sim, care calculează suma elementelor din vector care formează perechi egal depărtate de capetele vectorului și care sunt prime între ele.

În programele C/C++ nu se vor folosi variabile globale.

Date de intrare
Programul citește de la tastatură numerul n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire
Se va afișa pe ecran suma cerută.

Restricții și precizări

2 ≤ n ≤ 1000, n număr par
cele n numere citite vor fi mai mici decât 1000

Exemplu:
Intrare

6
50 18 15 28 35 40 
Ieșire

96  
Explicație
Perechile egal depărtate de capetele vectorului care sunt formate elemente prime între ele sunt: (18, 35) și (15, 28), iar suma lor este 96.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
void citire(int A[], int n)
{
    if(n>0)
    {
        citire(A,n-1);
        cin>>A[n];
    }
}
int cmmdc(int a, int b)
{
    if(b==0) return a;
    else return cmmdc(b,a%b);
}
int suma_sim(int A[], int st, int dr)
{
    if(st>dr) return 0;
    else if(cmmdc(A[st],A[dr])==1) return suma_sim(A,st+1,dr-1)+A[st]+A[dr];
         else return suma_sim(A,st+1,dr-1);
}
int main()
{
    int A[1002],n;
    cin>>n;
    citire(A,n);
    cout<<suma_sim(A,1,n);
    return 0;
}
```

## Resurse

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