#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool bo[1000010] = { false }; long long mod = 998244353; int main() { long long n; cin >> n; long long ans = 1; bo[1] = true; for (long long i = 2; i < n; i++) { for (long long j = 2; j * j <= i; j++) { if (i % j == 0) { bo[i] = true; break; } } } for (long long i = 2; i < n; i++){ long long m = 0; if (!bo[i]) { long long co = 0; for (long long j = i; j < n; j *= i) { co++; long long co1 = 0; long long k = n - j; while (k % i == 0) { k /= i; co1++; } m = max(m, co + co1); } } for (long long j = 0; j < m; j++) { ans *= i; ans %= mod; } } cout << ans << endl; }