【题目描述】
给定一个正整数 n ,请你求出 1~n 之间所有数字的因数之和是多少?
例如 n = 4 时:
- 1 的因数为 1
- 2 的因数为 1, 2
- 3 的因数为 1, 3
- 4 的因数为 1, 2, 4
所以 4 以内所有数字的因数之和为:
1 + 1 + 2 + 1 + 3 + 1 + 2 + 4 = 15
【输入格式】
输入共一行,一个正整数 n
【输出格式】
输出一行,表示所求的因数之和
【数据范围】
- 对于 30% 的数据,1 ≤ n ≤ 20
- 对于 80% 的数据,1 ≤ n ≤ 104
- 对于 100% 的数据,1 ≤ n ≤ 106
【样例输入】
4
【样例输出】
15
【思路概述】
原本,我和所有人一样,看到这道题第一时间想到的就是使用暴力。当然,所有人写出来的代码和下面的应该都是八九不离十:
#include<bits/stdc++.h>
using namespace std;
long long n;
long long ans=0;
int main(){
cin>>n;
for(int i=1;i<&