MOD = 998244353 N = int(input()) """ # https://oeis.org/A345176 def naive(N): from itertools import product from math import gcd ret = 0 for L in range(1,N+1): for i in product(range(1,N+1),repeat=L): ret += gcd(*i)%L == 0 return ret for i in range(1,21): print(i,naive(i)) ans = 0 for i in range(1,N+1): ans += pow(N//i,i,MOD) ans %= MOD print(ans) """ ans = 0 now = 1 while(now <= N): v = N//now v_end = N//v a = pow(v,now,MOD) r = v length = v_end - now + 1 if(r != 1): try: ans += a * (pow(r,length,MOD) - 1) * pow(r - 1,-1,MOD) except: # 998244354? for i in range(now,v_end+1): ans += a * pow(r,i,MOD) ans %= MOD else: ans += a * length ans %= MOD now = v_end + 1 print(ans)