#include using namespace std; #define int long long const int mod=998244353; mt19937 rnd; #define app push_back #define all(x) (x).begin(),(x).end() #ifdef LOCAL #define debug(...) [](auto...a){ ((cout << a << ' '), ...) << endl;}(#__VA_ARGS__, ":", __VA_ARGS__) #define debugv(v) do {cout<< #v <<" : {"; for(int izxc=0;izxc>n; int res=0; /*for(int q=1;q<=n;++q) { int cnt=0; for(int b=q+1;b<=n;++b) { for(int p=q;p*b<=n-q;++p) { ++cnt; } } res+=q*cnt; } debug(res);*/ auto score=[&](int b,int p) { if(b*p>=n) return 0LL; int mq=min(b-1,p); mq=min(mq,n-b*p); //debug(b,p,mq); return (mq*(mq+1)/2)%mod; }; for(int p=1;p*p<=n;++p) { int l=p+1;int r=n/p-2; r=max(l,r); res+=score(l,p)*(r-l+1);res%=mod; res+=score(r+1,p);res%=mod; res+=score(r+2,p);res%=mod; res+=score(r+3,p);res%=mod; } for(int b=1;b*b<=n;++b) { int l=b;int r=n/b-2;r=max(l,r); res+=score(b,l)*(r-l+1);res%=mod; res+=score(b,r+1);res%=mod; res+=score(b,r+2);res%=mod; res+=score(b,r+3);res%=mod; } cout<