399
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
nnumere citite vor fi mai mici decât10000; - rezultatul se va afişa cu cel puțin două zecimale exacte;
- în toate testele, printre cele
nnumere 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