N = int(input()) C = 10 ** 6 + 5 l = [] for i in range(2,C): if N % i == 0: count = 0 while N % i == 0: count += 1 N //= i l.append(count) if N > 1: end = N start = 1 while end - start > 1: mid = end + start >> 1 if mid + mid <= N: start = mid else: end = mid if start * start == N: l.append(2) else: l.append(1) T = max(l) dp = [[0] * (T + 1) for _ in range(T + 1)] for i in range(1,T + 1): dp[i][i] = 1 for i in range(1,T): for j in range(1,T + 1): for u in range(j,T - j + 1): if i + u > T:break dp[i + u][u] += dp[i][j] ans = 1 for i in l: tmp = 0 for j in range(T + 1): tmp += dp[i][j] ans *= tmp print(ans)