博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 616 E Sum of Remainders
阅读量:5333 次
发布时间:2019-06-15

本文共 1128 字,大约阅读时间需要 3 分钟。

Discription

Calculate the value of the sum: n mod 1 + n mod 2 + n mod 3 + ... + n mod m. As the result can be very large, you should print the value modulo 109 + 7 (the remainder when divided by 109 + 7).

The modulo operator a mod b stands for the remainder after dividing a by b. For example 10 mod 3 = 1.

Input

The only line contains two integers n, m (1 ≤ n, m ≤ 1013) — the parameters of the sum.

Output

Print integer s — the value of the required sum modulo 109 + 7.

Example

Input
3 4
Output
4
Input
4 4
Output
1
Input
1 1
Output
0 数论分块大水题,我是把n%i 转化成 n-i*[n/i]做的233
#include
#define ll long longconst int ha=1000000007;using namespace std;ll N,M,ans;inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x;}inline int ci(ll x){ x%=ha; return x*(ll)(x+1)/2%ha;}inline void solve(){ ans=M%ha*(N%ha)%ha,M=min(M,N); for(ll i=1,j,now;i<=M;i=j+1){ now=N/i,j=min(N/now,M); ans=add(ans,ha-add(ci(j),ha-ci(i-1))*now%ha); } printf("%I64d\n",ans);}int main(){ scanf("%I64d%I64d",&N,&M); solve(); return 0;}

  

 

转载于:https://www.cnblogs.com/JYYHH/p/8633987.html

你可能感兴趣的文章
移动开发基础和Dalvik VM
查看>>
2、springboot返回json
查看>>
ZOJ 2083 Win the Game(SG函数)题解
查看>>
HDU 5919 Sequence II(主席树)题解
查看>>
PAT 1029
查看>>
显示服务器上的数据库
查看>>
java基础知识
查看>>
Obsolete此API即将移除
查看>>
登录表单(入门简单)
查看>>
toj 4074 CF 319C 斜率优化dp
查看>>
Java注解之Retention、Documented、Target、Inherited介绍
查看>>
Javascript:谈谈JS的全局变量跟局部变量
查看>>
重温设计模式 - 外观模式
查看>>
oracle数据文件迁移
查看>>
java Socket和ServerSocket多线程编程
查看>>
Python 第五篇(上):算法、自定义模块、系统标准模块(time 、datetime 、random 、OS 、sys 、hashlib 、json和pickle)...
查看>>
web模拟终端博客系统
查看>>
微信小程序如何刷新当前界面
查看>>
在linux上使用yum安装JDK
查看>>
processing编程【1】
查看>>