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 P(int x[] , int n , int& sum) { sum=0; for(int i = 0 ; i < n ; ++i) { int cnt=1; int d=2; int c=x[i]; while(x[i]>1) { int p = 0; while(x[i]%d==0) x[i]/=d , p++; if(p>0) cnt*=(p+1); d++; if(d*d>x[i]) d=x[i]; } if(cnt==2) sum+=c; } }