0
点赞
收藏
分享

微信扫一扫

除数函数求和 2 [LOJ125]

雷亚荣 2022-07-12 阅读 13

​​传送门​​

除数函数求和 2 [LOJ125]_#define

除数函数求和 2 [LOJ125]_整除_02 

然后整除分块

#include<bits/stdc++.h>
#define Mod 998244353
#define LL long long
using namespace std;
int n;
LL Sum(LL x){return x * (x+1) % Mod * (x*2+1) % Mod * 166374059 % Mod;}
LL calc(LL r,LL l){
LL val1 = Sum(r) - Sum(l-1);
LL val2 = (l+r) * (r-l+1) % Mod * 499122177 % Mod;
LL val3 = r-l+1;
return (val1 * 2 + val2 * 3 + val3 * 5) % Mod;
}
int main(){
scanf("%d",&n); LL ans = 0;
for(int l=1,r;l<=n;l=r+1){
int val = n/l; r = n/val;
ans += calc((LL)r,(LL)l) * (LL)val % Mod;
ans = (ans % Mod + Mod) % Mod;
} printf("%lld",ans); return 0;
}

 


举报

相关推荐

0 条评论