Division or Subtraction

AtCoder
IDabc161_f
Time2000ms
Memory256MB
Difficulty
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$ [samples]
Samples
Input #1
6
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$
Input #2
3141
Output #2
13
Input #3
314159265358
Output #3
9
API Response (JSON)
{
  "problem": {
    "name": "Division or Subtraction",
    "description": {
      "content": "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 ",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc161_f"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Given is a positive integer $N$.\nWe will choose an integer $K$ between $2$ and $N$ (inclusive), then we will repeat the operation below until $N$ becomes less than $K$.\n\n*   Operation: if $K$ divides ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments