Informatică, întrebare adresată de RSTH, 8 ani în urmă

#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.

Răspunsuri la întrebare

Răspuns de rossetta
5
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];
}
Alte întrebări interesante