using System;

namespace debug
{
    class Program
    {
        static void Main(string[] args)
        {
            ProgramF2 a = new ProgramF2();
            a.main();

        }
    }

    //ABC162
    class ProgramE
    {
        public void main()
        {
            string[] s = Console.ReadLine().Split(' ');
            long n = long.Parse(s[0]);
            long k = long.Parse(s[1]);
            long MOD = 1000000000 + 7;
            long[] ans = new long[k];
            //最大公約数が大きいほうから数えていく
            for(long i = k;i > 0;i--)
            {
                //答えを格納
                ans[i - 1] = modpow(k / i, n, MOD);

                long x = 2 * i;
                //これより大きい公約数をもつ場合は除く(logNの計算時間のはず...）
                while(x <= k)
                {
                    ans[i - 1] = (ans[i - 1] - ans[x - 1]) % MOD;
                    x += i;
                }
            }

            //答え算出
            long count = 0;
            for(int i = 0;i < k;i++)
            {
                count += ans[i] *(i + 1) % MOD;
                count %= MOD;
            }

            Console.WriteLine(count);
        }

        public long modpow(long a, long n, long mod)
        {
            if (n == 0)
                return 1;

            if (n % 2 == 0)
            {
                long temp = modpow(a, n / 2, mod);
                return temp * temp % mod;
            }

            return modpow(a, n - 1, mod) * a % mod;
        }
    }

    //ABC162
    class ProgramF
    {
        public void main()
        {
            int n = int.Parse(Console.ReadLine());
            string[] a = Console.ReadLine().Split(' ');
            long INF = -10000000000 + 7;//ありえないケース

            //DPで解いていく（
            long[,] dp = new long[n + 1, 2];//i番目までに何個選ぶかを決めて状態遷移、tのときはt = i/2, i/2 + 1
            dp[0, 0] = 0;
            dp[0, 1] = INF;
            dp[1, 0] = 0;
            dp[1, 1] = long.Parse(a[0]);
            dp[2, 0] = long.Parse(a[1]);
            dp[2, 1] = INF;
            //DP
            for (int i = 3; i <= n; i++)
            {
                //偶数の時
                if (i % 2 == 0)
                {
                    dp[i, 1] = dp[i - 2, 1];
                    dp[i, 0] = Math.Max(dp[i - 3, 1] + long.Parse(a[i - 1]), dp[i - 2, 0] + long.Parse(a[i - 1]));

                }
                else
                {
                    dp[i, 1] = dp[i - 2, 1] + long.Parse(a[i - 1]);
                    dp[i, 0] = Math.Max(dp[i - 2, 1], dp[i - 2, 0] + long.Parse(a[i - 1]));
                    dp[i, 0] = Math.Max(dp[i, 0], dp[i - 3, 0] + long.Parse(a[i - 1]));
                    if(i > 3)
                        dp[i, 0] = Math.Max(dp[i, 0], dp[i - 4, 1] + long.Parse(a[i - 1]));
                }

            }

            //答え出力
            if(n % 2 == 0)
                Console.WriteLine(Math.Max(dp[n -1, 1], dp[n, 0]));
            else
                Console.WriteLine(Math.Max(Math.Max(dp[n, 0], dp[n - 1, 0]), dp[n - 2,1]));
        }
    }

    //ABC161
    class ProgramF2
    { 
        public void main()
        {
            long n = long.Parse(Console.ReadLine());
            long count = 2;//nとn-1はすでにカウントしておく（答えなので）

            if(n == 2)
            {
                Console.WriteLine("1");
                return;
            }

            //n-1の約数はすべて満たす（よって、その数と逆数でカウント。平方数に注意）
            for(long i = 2; i <= Math.Sqrt(n - 1);i++)
            {
                if ((n - 1) % i == 0)
                {
                    if (i * i == n - 1)
                        count++;
                    else
                        count += 2;
                }

            }
            //nの約数にうち小さいほうのみを考える。iで割ってみて割り切れなくなった時にあまりが1かどうかで判定
            for (long i = 2; i <= Math.Sqrt(n); i++)
            {
                if (n % i == 0)
                {
                    long t = n;
                    while(t % i == 0)
                    {
                        t /= i;
                    }

                    if(t % i == 1)
                        count++;
                }

            }

            Console.WriteLine(count);
        }
    }

}


Measured memory_bytes: 27480