此題就是考察了一個簡單的公式
a^x % c = a^(x % phi(c) + phi(c)) %c 其中x>= phi(c)
phi(c)為歐拉函數
注意 歐拉函數的定義為 不超過n且與n互素的正整數的個數 而不是小於n
並且phi(1) =1
然後對於本題 分成三部分
第一部分 n! < phi(c) 這時就需要直接計算n! ,好在phi(c)不會很大。
第二部分 n! >= phi(c) 但是 n! % phi(c) != 0 這一部分同樣需要暴力計算,不過可以進行取模運算了,不會出現非常大的數
第三部分n! >= phi(c) 並且n! % phi(c) == 0 這一部分就轉化為了 n^phi(c) % c 然後就變成了(n % c) ^ phi(c) % c 那麼就成了一個長度為c的循環節了
最後 需要特別注意的是,題目給的范圍很大,需要用uLL, 並且答案有可能會超過uLL,因為當 c=1,b=0時,0到2^64-1都是符合條件的,所以需要特判
代碼不再給出,也不是很難寫