SPOJ SUMPRO(数学)

题意:

给出一个数N,问所有满足n/x=y(此处为整除)的所有x*y的总和是多少。对答案mod(1e9+7)。

1 <= T <= 500。

1 <= N <= 1e9。

分析:

可以枚举x得到y,但是这样是O(n)的会TLE

当x<=sqrt(n)的时候,我们可以暴力枚举

当x>sqrt(n)的时候,我们发现很多x对应的y值都相等,这些组成一个等差序列,实际上,这时候的(x,y)就是我们之前暴力过的(y,x),等差数列求和即可

posted @ 2017-05-16 22:54  Chellyutaha  阅读(184)  评论(0编辑  收藏  举报