C - Power Convergence Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 700

問題文

整数 N が与えられます.

正整数 x に対し,f(x) を次のように定義します.

  • 非負整数 k であって,x^k \equiv x^{k+1} \mod N が成り立つものを考える. このような k が存在する場合,その最小値を f(x) とする. 存在しない場合 f(x)=0 とする.

\sum_{1 \leq x \leq N} f(x) を求めてください.

1 つの入力ファイルにつき,T 個のテストケースに答えて下さい.

制約

  • 1 \leq T \leq 10
  • 2 \leq N \leq 10^9
  • 入力される値はすべて整数.

入力

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

T
case_1
case_2
\vdots
case_T

各テストケース case_i は以下の形式である.

N

出力

T 行出力せよ. i 行目には case_i の答えを出力せよ.


入力例 1

10
2
3
4
5
6
7
8
9
10
11

出力例 1

1
1
3
1
3
1
9
5
3
1

例えば N=4 のとき f(x) の値は以下のようになります.

  • f(1)=0\ \ \ \ (1^0 \equiv 1^1 \mod 4)
  • f(2)=2\ \ \ \ (2^2 \equiv 2^3 \mod 4)
  • f(3)=0\ \ \ \ (3^k \equiv 3^{k+1} \mod 4 を満たす k は存在しない)
  • f(4)=1\ \ \ \ (4^1 \equiv 4^2 \mod 4)

よって答えは 0+2+0+1=3 です.


入力例 2

10
91
92
93
94
95
96
97
98
99
100

出力例 2

3
7
3
3
3
119
1
27
11
31