Cerința
Se consideră următorul șir de numere naturale: 1 3 5 8 10 14 16..., în care termenul de pe poziția i (i > 1) este egal cu cel precedent plus numărul de divizori ai lui i. Afișați al n-lea termen.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran numărul x, reprezentând al n-lea termen din șir.
Restricții și precizări
1 ≤ n ≤ 100.000
Răspunsuri la întrebare
Răspuns de
6
#include <iostream>
using namespace std;
int nrdiv(int num)
{
int nr=0, j;
for (j=1; j*j<num; ++j)
if (num%j==0) nr+=2;
if (j*j==num) ++nr;
return nr;
}
int main()
{
int n, indtermen, xn=1;
cin >> n;
for (indtermen=2; indtermen<=n; ++indtermen)
xn = xn + nrdiv(indtermen);
cout << xn;
return 0;
}
Alte întrebări interesante