MOD = 998244353

def factorize(n):
    factors = {}
    i = 2
    while i * i <= n:
        while n % i == 0:
            factors[i] = factors.get(i, 0) + 1
            n = n // i
        i += 1
    if n > 1:
        factors[n] = 1
    return factors

def generate_divisors(factors):
    divisors = [1]
    for p, exp in factors.items():
        current_length = len(divisors)
        for e in range(1, exp + 1):
            p_power = p ** e
            for i in range(current_length):
                divisors.append(divisors[i] * p_power)
    divisors = list(sorted(divisors))
    return divisors

def main():
    N = int(input())
    if N == 1:
        print(0)
        return
    factors = factorize(N)
    primes = sorted(factors.keys())
    divisors = generate_divisors(factors)
    n_div = len(divisors)
    
    # Precompute exponents for each divisor
    exponents = []
    for d in divisors:
        ex = {}
        temp = d
        for p in primes:
            ex[p] = 0
            while temp % p == 0:
                ex[p] += 1
                temp //= p
        exponents.append(ex)
    
    div_to_idx = {d: i for i, d in enumerate(divisors)}
    dp = [0] * n_div
    dp[0] = 1  # Starting at divisor 1
    
    for i in range(n_div):
        d = divisors[i]
        ex_d = exponents[i]
        for j in range(i + 1, n_div):
            m = divisors[j]
            if m % d != 0:
                continue
            # Compute exponents for m
            ex_m = exponents[j]
            count = 1
            for p in primes:
                a_p = ex_d.get(p, 0)
                b_p = ex_m.get(p, 0)
                if a_p < b_p:
                    # Must have exactly b_p in a_i
                    continue
                else:
                    # Can have 0 to b_p in a_i
                    count = (count * (b_p + 1)) % MOD
            dp[j] = (dp[j] + dp[i] * count) % MOD
    
    # Find the index of N in divisors
    idx = div_to_idx[N]
    print(dp[idx] % MOD)

if __name__ == '__main__':
    main()