fun main(args:Array){ val N = readLine()!!.toInt() val sieve = BooleanArray(N+1){it>=2} for (i in 2..N) for (j in 2*i..N step i) sieve[j] = false val prime = sieve.withIndex().filter{it.value}.map{it.index} var ans = 1L val M = 998_244_353L for (i in prime.dropLast(1)){ var j = i.toLong() while(j*i<=N)j*=i ans=ans*j%M } println(ans) }