题目描述
给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值。
例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7。
输入格式
输入仅一行,包含两个整数n, k。
输出格式
输出仅一行,即j(n, k)。
数据范围
1≤n,k≤1e9
输入样例
5 3
输出样例
7
思路:
这题,纯数学题。
已知 k m o d i = k − ⌊ k / i ⌋ ∗ i k \ mod\ i = k - \lfloor k / i \rfloor * i k mod i=k−⌊k/i⌋∗i
所以: ∑ i = 1 n k m o d i = n ∗ k − ∑ i = 1 n ⌊ k / i ⌋ ∗ i \sum_{i=1}^n{k\ mod\ i} = n * k - \sum_{i=1}^n{\lfloor k / i \rfloor * i} i=1∑nk mod i=n∗k−i=1∑n⌊k/i⌋∗i
由此可以看出,我们必须将 ∑ i = 1 n ⌊ k / i ⌋ ∗ i {\sum_{i=1}^n\lfloor k / i \rfloor * i} ∑i=1n⌊k/i⌋∗i 进行简化计算。
⌊ k / i ⌋ \lfloor k / i \rfloor ⌊k/i⌋ 随着 i i i 的递增,是一个递减的趋势,也就是一个单调递减的性质。
对于任意的整数 l ∈ [ 1 , k ] l\in[1, k] l∈[1,