結果
問題 | No.1287 えぬけー |
ユーザー | persimmon-persimmon |
提出日時 | 2021-02-16 21:12:34 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 477 ms / 2,000 ms |
コード長 | 780 bytes |
コンパイル時間 | 239 ms |
コンパイル使用メモリ | 82,340 KB |
実行使用メモリ | 88,252 KB |
最終ジャッジ日時 | 2024-09-13 10:36:58 |
合計ジャッジ時間 | 3,021 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 37 ms
53,496 KB |
testcase_01 | AC | 37 ms
52,060 KB |
testcase_02 | AC | 36 ms
53,216 KB |
testcase_03 | AC | 38 ms
52,744 KB |
testcase_04 | AC | 37 ms
53,084 KB |
testcase_05 | AC | 396 ms
87,304 KB |
testcase_06 | AC | 477 ms
88,252 KB |
testcase_07 | AC | 405 ms
87,572 KB |
testcase_08 | AC | 384 ms
86,612 KB |
ソースコード
t=int(input()) cases=[list(map(int,input().split())) for _ in range(t)] mod=10**9+7 memo={} # mod m におけるaの逆元。gcd(a,m)=1 def modinv(a, m): if (a,m) in memo:return memo[(a,m)] x=xgcd(a, m) memo[(a,m)]=x%m return x % m def ext_gcd(a, b): # a*x+b*y==gcd(a,b)たるgcd(a,b),x,y if b > 0: d,x,y = ext_gcd(b,a % b) return d,y,x-(a//b)*y return a,1,0 for x,k in cases: # x=n^k (mod)となるnを求める。k:奇数 <=5*10**8 # x^i=n^(i*k) (mod) # ここでi*k%(mod-1)=1なら、フェルマーの小定理より # x^i=n (mod) # となる。 # i*k%(mod-1)=1となるiを探す。 # kの制約よりkとmod-1は互いに素 # ある(i,j)があり、i*k=j*(mod-1)+1 # i*k+j*(mod-1)=1 g,i,j=ext_gcd(k,mod-1) print(pow(x,i,mod))