测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题