100 atcoder#ABC179E. [ABC179E] Sequence Sum

[ABC179E] Sequence Sum

配点 : 500500

問題文

xxmm で割った余りを f(x,m)f(x,m) と表します。

初期値 A1=XA_1=X および漸化式 An+1=f(An2,M)A_{n+1}= f(A_n^2, M) で定まる数列を AA とします。i=1NAi\displaystyle{\sum_{i=1}^N A_i} を求めてください。

制約

  • 1N10101 \leq N \leq 10^{10}
  • 0X<M1050 \leq X < M \leq 10^5
  • 入力は全て整数

入力

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

NN XX MM

出力

i=1NAi\displaystyle{\sum_{i=1}^N A_i} を出力せよ。

6 2 1001
1369

数列 AA2,4,16,256,471,620,2,4,16,256,471,620,\ldots となるので、答えは 2+4+16+256+471+620=13692+4+16+256+471+620=1369 となります。

1000 2 16
6

数列 AA2,4,0,0,2,4,0,0,\ldots となるので、答えは 66 となります。

10000000000 10 99959
492443256176507