## https://yukicoder.me/problems/no/2318 import math from collections import deque MOD = 998244353 def main(): N = int(input()) # 素因数分解 sqrt_n = int(math.sqrt(N)) n = N primes = {} for p in range(2, sqrt_n + 1): if n % p == 0: primes[p] = 0 while n % p == 0: n //= p primes[p] += 1 if n > 1: primes[n] = 1 primes_key = list(primes.keys()) primes_key.sort() # 約数列挙 divisors = [] for p in range(1, sqrt_n + 1): if N % p == 0: q = N // p divisors.append(p) if q != p: divisors.append(q) divisors.sort() divisors2 = [] for d in divisors: c_array = [] for p in primes_key: c = 0 while d % p == 0: d //= p c += 1 c_array.append(c) divisors2.append(tuple(c_array)) dp = {divisors2[0]: 1} for i in range(1, len(divisors2)): x = divisors2[i] ans = 0 for j in range(i): y = divisors2[j] is_ok = True for k in range(len(x)): if x[k] < y[k]: is_ok = False break if is_ok: a = 1 for k in range(len(x)): if x[k] == y[k]: a *= (y[k] + 1) a %= MOD ans += (a * dp[y]) % MOD ans %= MOD dp[x] = ans print(dp[divisors2[-1]]) if __name__ == "__main__": main()