#T1012. 区间倍数求和

区间倍数求和

【题目描述】

小灰灰有一个区间 [l,r][l, r]

小蓝有一个喜欢的数字 kk

现在小灰灰想知道区间 [l,r][l, r] 中所有 kk 的倍数的和为多少。

形式化的说,你需要找到所有 lxrl\le x\le rxx,且 xx 能够整除 kk,最后你需要输出所有这样 xx 的总和。


【输入描述】

输入一行三个空格分隔的整数,分别表示 llrrkk

保证:

  • 1lr1091\le l \le r \le 10^9
  • 1k1091\le k \le 10^9

【输出描述】

输出一行一个整数表示答案。


【样例 1】

【样例 1 输入】

1 10 2

【样例 1 输出】

30

【样例 1 解释】

在区间 [1,10][1, 10] 中,2 的倍数有 2、4、6、8、10。

总和为 2+4+6+8+10=302 + 4 + 6 + 8 + 10 = 30

【样例 2】

【样例 2 输入】

5 20 3

【样例 2 输出】

60

【样例 2 解释】

在区间 [5,20][5, 20] 中,3 的倍数有 6、9、12、15、18。

总和为 6+9+12+15+18=606 + 9 + 12 + 15 + 18 = 60

【样例 3】

【样例 3 输入】

1 1 1

【样例 3 输出】

1

【样例 3 解释】

在区间 [1,1][1, 1] 中,1 的倍数只有 1。

总和为 1。

【样例 4】

【样例 4 输入】

100 200 100

【样例 4 输出】

300

【样例 4 解释】

在区间 [100,200][100, 200] 中,100 的倍数有 100、200。

总和为 100+200=300100 + 200 = 300


【数据规模与约定】

测试点编号 分数 特殊性质 1
1 ~ 8 40 r106r \le 10^6
9 ~ 12 60