F - Division or Subtraction Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600

問題文

正整数 N が与えられます。

2 以上 N 以下の整数 K を決めて、NK 未満になるまで次の操作を繰り返し行います。

  • 操作:NK で割り切れるとき、NN/K に置き換える。そうでないとき、NN-K に置き換える。

最終的に N1 になるような K の決め方は何通りありますか?

制約

  • 2 \leq N \leq 10^{12}
  • N は整数

入力

入力は以下の形式で標準入力から与えられる。

N

出力

最終的に N1 になるような K の決め方が何通りあるか出力せよ。


入力例 1

6

出力例 1

3

最終的に N1 になるような K2,5,63 通りです。

それぞれのとき、N は次のように変化します。

  • K=2 のとき:6 \to 3 \to 1
  • K=5 のとき:6 \to 1
  • K=6 のとき:6 \to 1

入力例 2

3141

出力例 2

13

入力例 3

314159265358

出力例 3

9

Score : 600 points

Problem Statement

Given is a positive integer N.

We will choose an integer K between 2 and N (inclusive), then we will repeat the operation below until N becomes less than K.

  • Operation: if K divides N, replace N with N/K; otherwise, replace N with N-K.

In how many choices of K will N become 1 in the end?

Constraints

  • 2 \leq N \leq 10^{12}
  • N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the number of choices of K in which N becomes 1 in the end.


Sample Input 1

6

Sample Output 1

3

There are three choices of K in which N becomes 1 in the end: 2, 5, and 6.

In each of these choices, N will change as follows:

  • When K=2: 6 \to 3 \to 1
  • When K=5: 6 \to 1
  • When K=6: 6 \to 1

Sample Input 2

3141

Sample Output 2

13

Sample Input 3

314159265358

Sample Output 3

9