[数论] 51Nod 1225 余数之和
2016-11-22 14:27
381 查看
n%i=n-[n/i]*i
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
typedef long long ll;
int P=1000000007;
int INV=5e8+4;
ll n;
ll Ans=0;
inline ll Sum(ll l,ll r){
return ((l+r)%P)*((r-l+1)%P)%P*INV%P;
}
int main(){
scanf("%lld",&n);
Ans=(n%P)*(n%P)%P;
for (ll i=1,last;i<=n;i=last+1){
last=n/(n/i);
Ans+=P-(ll)(n/i)*Sum(i,last)%P;
Ans%=P;
}
printf("%lld\n",Ans);
return 0;
}
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
typedef long long ll;
int P=1000000007;
int INV=5e8+4;
ll n;
ll Ans=0;
inline ll Sum(ll l,ll r){
return ((l+r)%P)*((r-l+1)%P)%P*INV%P;
}
int main(){
scanf("%lld",&n);
Ans=(n%P)*(n%P)%P;
for (ll i=1,last;i<=n;i=last+1){
last=n/(n/i);
Ans+=P-(ll)(n/i)*Sum(i,last)%P;
Ans%=P;
}
printf("%lld\n",Ans);
return 0;
}
相关文章推荐
- 51nod 1225 余数之和 数论
- 51Nod-1225-余数之和
- 51Nod 1225 余数之和 [整除分块]
- 51nod 1225 余数之和(根号n枚举)
- 51nod 1225 余数的和 数学
- 51nod 1225 余数之和
- 51nod-1225-余数求和(分块)
- 51NOD-1225 余数之和
- 51nod 1225 余数之和
- 51nod 1225 余数之和
- bzoj1257: [CQOI2007]余数之和sum(数论)
- 51nod 1616 最小集合(数论)(枚举)
- 51nod 1040 1060 (数论)
- BZOJ 1257[CQOI2007]余数之和sum | 数论
- (HDU 1664)Different Digits BFS + 数论 + 余数判重 详细题解
- [数论][Lucas定理] 51Nod 1778 小Q的集合
- 51Nod-最长的循环节(数论)
- 51nod 序列变换 [容斥原理+莫比乌斯函数]【数论+组合数学】
- 51nod 1616 最小集合(数论)(枚举)
- 【51Nod】1265 - 四点共面(行列式 & 数论)