#include using namespace std; const int64_t mod=998244353; int main(){ int n; cin>>n; vectorsieve(n+1); iota(sieve.begin(),sieve.end(),0); for(int64_t i=2;i<=n;i++){ if(sieve[i]!=i)continue; for(int64_t j=i*i;j<=n;j+=i){ sieve[j]=i; } } int skip=n; while(sieve[skip]!=skip)skip--; mapdivr; for(int i=2;i<=n;i++){ if(i==skip)continue; int t=i; mapcnt; while(sieve[t]!=1){ cnt[sieve[t]]++; t/=sieve[t]; } for(auto j:cnt){ divr[j.first]=max(divr[j.first],j.second); } } int64_t ans=1; for(auto i:divr){ for(int j=0;j