求问原因
查看原帖
求问原因
518206
本人是个SB楼主2024/10/16 22:58

我的除法写在前面时候为什么就A了?
写后面不A...

#include<bits/stdc++.h>
using namespace std;
long long n,k,t,mod=998244353;
inline long long h(long long in)
{
   long long ans=0,l=1,r;
   while(l<=in)
   {
   	r=in/(in/l);
   	ans=(ans+(((in/l)%mod)*(r-l+1)%mod)%mod)%mod;
   	l=r+1;
   }
   return ans;
}
int main()
{
   ios::sync_with_stdio(0);
   cin.tie(0);
   cout.tie(0);
   cin>>n>>k;
   cout<<(h(k)-h(n-1)%mod+mod)%mod;
   return 0;
}

原先

#include<bits/stdc++.h>
using namespace std;
long long n,k,t,mod=998244353;
inline long long h(long long in)
{
	long long ans=0,l=1,r;
	while(l<=in)
	{
		r=in/(in/l);
		ans=(ans+((r-l+1)%mod*((in/l)%mod))%mod)%mod;
		l=r+1;
	}
	return ans;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>k;
	cout<<(h(k)-h(n-1)%mod+mod)%mod;
	return 0;
}
2024/10/16 22:58
加载中...