312
Cerinţa
Să se scrie un program care citeşte de la tastatură un număr natural n
şi apoi un şir de n
numere naturale şi determină media aritmetică a celor prime.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n
numere naturale.
Date de ieşire
Programul afișează pe ecran numărul M
, reprezentând media aritmetică a valorilor prime.
Restricţii şi precizări
0 < n < 1000
;- cele
n
numere citite vor fi mai mici decât10000
; - rezultatul se va afişa cu cel puțin două zecimale exacte;
- în toate testele, printre cele
n
numere va exista cel puțin un număr prim.
Exemplu
Intrare
5 8 7 5 9 11
Ieșire
7.66
#include <bits/stdc++.h> using namespace std; bool prim(int n) { int cnt = 0; for(int d = 1 ; d * d <= n ; ++d) { if(n % d == 0) cnt+=2; if(d * d == n) cnt--; } if(cnt == 2) return 1; return 0; } int main() { int n; cin >> n; int x , cntp=0 , sp=0; for(int i = 1 ; i <= n ; ++i) { cin >> x; if(prim(x)) sp+=x , cntp++; } cout << fixed << setprecision(2) << (double)(sp*100/cntp)*0.01; return 0; }
Comentarii