def factorization(n): arr = [] temp = n for i in range(2, int(-(-n**0.5//1))+1): if temp%i == 0: cnt = 0 while temp%i == 0: cnt += 1 temp //= i arr.append([i, cnt]) if temp != 1: arr.append([temp, 1]) if arr == []: arr.append([n, 1]) return arr def func(n, SUM): if n == len(fact): if 2 <= SUM: div.append((SUM, tuple(A))) else: div.append((SUM, tuple([(1, 1)]))) return for i in range(fact[n][1]+1): if 1 <= i: A.append((fact[n][0], i)) func(n+1, SUM*fact[n][0]**i) if 1 <= i: A.pop() MOD = 998244353 N = int(input()) fact = factorization(N) div = [] A = [] func(0, 1) div.sort(key=lambda x:x[0]) D = dict() for n, t in div: D[n] = t L = len(div) dp = [0]*L dp[0] = 1 for i in range(L-1): fac = dict() for n, c in div[i][1]: fac[n] = c for j in range(i+1, L): if div[j][0]%div[i][0] != 0: continue S = set() for n, c in div[i][1]: if n != 1: S.add(n) for n, c in D[div[j][0]//div[i][0]]: S.discard(n) SUM = 1 for n in S: SUM *= fac[n]+1 SUM %= MOD dp[j] += dp[i]*SUM%MOD dp[j] %= MOD print(dp[-1])