fbpx

Problema #116 – MediePrime – Rezolvari PBInfo

de Mihai-Alexandru

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ât 10000;
  • 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

S-ar putea sa iti placa