约数研究 求详细解答 不明白题目

描述

F(n)表示n的约数个数,现在给出n,要求求出f(1)到f(n)的总和。
输入 (读取文件: Divisor.in)
输入一行,一个整数n
输出 (写入文件: Divisor.out)
输出一个整数,表示总和
输入样例 1
3
输出样例 1
5
提示
20%N<=5000
100%N<=1000000

供参考:

#include <iostream>
 using namespace std;
 int F(int n)
 {
     int i, cnt = 0;
     for (i = 1; i <= n; i++)
         if (n % i == 0) cnt++;
     return cnt;
 } 

 int main() {
    int n, i;
    cin >> n;
    int  s = 0;
    for ( i = 1; i <= n; ++i) {
        s += F(i);
    }
    cout << s << endl;
    return 0;
 }


 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstdlib>
 4 #include <cmath>
 5 using namespace std;
 6 
 7 int n;
 8 int main () {
 9     cin >> n;
10 
11     int  s =0;
12     for (int i = 1; i <= n; ++i) {
13         s += n / i;
14     }
15     cout << s << endl;
16 
17     return 0;
18 }