#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; const ll MOD=998244353; int main() { ll n; cin>>n; if(n==1){ cout<<8<> vd(sq+1); vector m(sq+1, 1); for(int d=1; d<=sq; d++){ bool prime=0; if(vd[d].size()==1) prime=1; if(m[d]==0) continue; for(int i=d; i<=sq; i+=d){ vd[i].push_back(d); if(prime){ if(i/d%d==0) m[i]=0; else m[i]=-m[i]; } } } ll x1=sq, ans=56; for(ll i=2; i<=sq; i++){ while(x1*x1>n-i*i) x1--; ll x=min(x1, i); for(auto d:vd[i]){ ll y=x/d; ll s=(((y*(y+1))>>1)*d%MOD+y*i)*48%MOD; if(m[d]==1) ans+=s; else ans+=MOD-s; if(ans>=MOD) ans-=MOD; } } cout<