提交时间:2024-11-12 16:29:06
运行 ID: 34694
#include<bits/stdc++.h> using namespace std; #define mod 1000000007 #define ll long long ll search(ll x){ ll l=1,r=x,mid,ans; while (l<=r) { mid=l+(r-l)/2; if(mid*mid<=x){ ans=mid; l=mid+1; }else r=mid-1; } return ans; } ll cal(ll x){ ll i=search(x); i=i*i; ll ans=(i+x)%mod*(x-i+1)%mod/2; if(i%2==0) ans=(mod-ans)%mod; return ans; } int main(){ ll l,r; cin>>l>>r; ll ans=cal(r)-cal(l-1); while (ans<0) ans+=mod; cout<<ans<<endl; return 0; }