#1847 PBINFO
Cerinţa
Scrieți definiția completă a subprogramului C++ recursiv P care primeşte prin intermediul parametrului n un număr natural nenul (n≤100), iar prin intermediul parametrului x un tablou unidimensional cu n componente întregi, de maximum șase cifre fiecare.
Subprogramul furnizează prin intermediul parametrului s suma elementelor din tabloul x care au valori numere prime.
Restricţii şi precizări
0 < n ≤ 100
numele subprogramului cerut este P
parametrii sunt, în această ordine: x, n, s
elementele vectorului x sunt indexate de la zero
se recomandă realizarea unei soluții recursive
Exemplu
Dacă n=6 și x=(12, 7, 6, 3, 8, 5), după apel s=15.
Important
Soluţia propusă va conţine definiţia subprogramului cerut și eventual al altor subprograme, apelate de acesta. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
int prim(int n) { int d = 2; while(d * d <= n && n % d != 0) d++; return (d * d > n && n > 1); } void P(int a[], int n, int &s) { if(n == 1) s = 0; else P(a, n - 1, s); if(prim(a[n - 1])) s = s + a[n - 1]; }