题目描述
给定一个正整数nn,请你求出1~n1~n之间所有数字的因数之和是多少?
例如n=4n=4时:
- 11的因数为11
- 22的因数为1,21,2
- 33的因数为1,31,3
- 44的因数为1,2,41,2,4
所以44以内所有数字的因数之和为:
1+1+2+1+3+1+2+4=151+1+2+1+3+1+2+4=15
输入格式
输入共一行,一个正整数nn
输出格式
输出一行,表示所求的因数之和
数据范围
- 对于 30%30% 的数据,1≤n≤201≤n≤20
- 对于 80%80% 的数据,1≤n≤1041≤n≤104
- 对于 100%100% 的数据,1≤n≤1061≤n≤106
样例数据
输入:
4
输出:
15
说明:
详情见题面
详见代码:
#include <bits/stdc++.h>
using namespace std;
int n;
long long sum = 0;
int main()
{cin >> n;for(int i = 1; i <= n; i++) {sum += n / i * i;}cout << sum;return 0;
}