#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define MD 998244353 char d[1234567]; main(){ int n; scanf("%d",&n); int h=sqrt(n),i=3; long a=1,b=1l<<~__builtin_clzl(n); for(;i<=h;i+=2){ if(!d[i>>1]){ a=b; int c=1; while(c*i<=n)c*=i; b=b*c%MD; for(int j=i*i;j<=n;j+=i*2){ d[j>>1]=1; } } } for(;i<=n;i+=2){ if(!d[i>>1]){ a=b; b=b*i%MD; } } printf("%ld",a); }