余数之和
总时间限制: 1000ms 内存限制: 65536kB
描述
给定两个数:n和m
计算出:n%1+n%2+…+n%m的结果。(结果对10^9+7取模)
输入
第1行:两个整数n和m
输出
第1行:整数S(对10^9+7取模后的结果)
样例输入
3 4
样例输出
4
提示
【数据规模】
1≤n,m≤10^9
思路点拔:
题目非常简单,有些人拿到题就用暴力方法,但这样绝对超时,我就不上超时代码了。我们可以分析一下余数有什么规律:
若m为10,n为15
模数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
余数:
0 0 1 2 0 4 3 2 1 0 10 10 10 10 10
不难发现,当m大于n时,余数就是n,这样,我们就可以砍掉大于n的部分,大大降低
了循环次数,然而,这样又有问题:若输入的是1000000000 1000000000呢?所以单
单