A26401. 星星的个数
填空题
较难
知识点
题目描述
星星的个数
题目描述
你每天都会收集不同数量的星星贴纸。当收集到第 k 天时 (1≤k≤n),他当天获得的贴纸数量是 k 张,而每张贴纸上印着的星星数量等于 k 这个数字的因数个数(比如数字6有4个因数:1,2,3,6,就印4颗星星)。请计算你这 n 天收集到的星星总数。
输入格式
输入一个整数 n。
输出格式
共一行,这 n 天收集到的星星总数。
输入样例#1
4输出样例#1
23输入样例#2
100输出样例#2
26879输入样例#3
10000000输出样例#3
838627288460105数据范围
1 ≤ N ≤ 107
样例1说明
1 × 1 + 2 × 2 + 3 × 2 + 4 × 3 =23
参考答案
#include<iostream>
using namespace std;
int main()
{
long long n;
cin >> n;
long long sum = 0;
for (int d = 1; d <= n; ++d) {
long long k = n / d;
sum += d * (k + 1) * k / 2;
}
cout << sum << "\n";
return 0;
}
上一题
下一题