#include #include #include #include #include using i64 = long long; using Modint = atcoder::static_modint<998244353>; using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vector isPrime(N+1, 1); isPrime[0] = isPrime[1] = 0; for(i64 k=2; k*k<=N; k++) if(isPrime[k]){ for(i64 q=k*k; q<=N; q+=k) isPrime[q] = 0; } vector A; for(i64 k=2; k<=N; k++) if(isPrime[k]){ i64 t = N; i64 c = 0; while(t){ c += (t /= k); } A.push_back(c); } vector Q(A[0]+1, 1); for(i64 a : A) for(i64 c=1; c<=a; c++) Q[c] *= a/c+1; Modint ans = 0; for(i64 a=1; a<=A[0]; a++) ans += Q[a]; ans -= A[0]; cout << ans.val() << endl; return 0; }