fbpx

Problema #1568 – MedieDiv – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se citeşte de la tastatură un număr natural n. Să se calculeze şi să se afişeze media aritmetică a tuturor divizorilor săi. Media va fi cu fix 2 zecimale dupa virgula.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentand media aritmetica.

Restricții și precizări

  • 1 ≤ n ≤ 1.000.000

Exemplu

Intrare

9

Ieșire

4.33

Explicație

Divizorii lui 9 sunt: 1, 3 si 9. Media aritmetica este 4.33.

#include <bits/stdc++.h>

using namespace std;


int main()
{
    int n;
    cin >> n;
    int cnt=0;

    long long sumaDiv = 0;
    for (int d = 1; d * d <= n; ++d)
        if (n % d == 0)
        {
            cnt++;
            sumaDiv += d;
            if (d * d != n)
                {sumaDiv += n / d;
                cnt++;}
        }
    cout << fixed << setprecision(2)<< (float)sumaDiv/cnt;
    return 0;
}
Comentarii

S-ar putea sa iti placa