447
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