传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2956
由于latex挂了就懒得写题解了,水题……
Code:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL MOD=19940417;
LL n,m,sqn,sqm,ans,res;
LL power(LL x,LL k,LL p){
LL ans=1;
for(;k;k>>=1){
if(k&1)ans=(ans*x)%p;
x=(x*x)%p;
}return ans;
}
LL inv2,inv6;
LL sum(LL n){
return n*(n+1)%MOD*(2*n+1)%MOD*3323403%MOD;
}
LL F(LL n,LL m){
LL ans=0;
for(LL i=1,j;i<=n;i=j+1){
j=min(n,m/(m/i));
ans+=(m/i)*(i+j)%MOD*(j-i+1)%MOD*9970209%MOD;
ans%=MOD;
}return ans;
}
int main(){
cin>>n>>m;if(n>m)swap(n,m);
ans=(n*n-F(n,n))%MOD*((m*m-F(m,m))%MOD);
ans+=-n*n%MOD*m%MOD+F(n,m)*n%MOD+F(n,n)*m%MOD;
ans%=MOD;
for(LL i=1,j;i<=n;i=j+1){
j=min(m,min(n/(n/i),m/(m/i)));
ans+=-(n/i)*(m/i)%MOD*((sum(j)-sum(i-1))%MOD)%MOD;
ans%=MOD;
}while(ans<0)ans+=MOD;
cout<<ans%MOD<<endl;
return 0;
}