結果
問題 | No.984 Inversion |
ユーザー |
![]() |
提出日時 | 2024-04-24 21:28:55 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 734 bytes |
コンパイル時間 | 279 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-11-07 06:36:19 |
合計ジャッジ時間 | 2,088 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 24 |
ソースコード
def Tonelli_Shanks(N,p): if (N,p)==(1,2): retu=1 elif pow(N,p>>1,p)==p-1: retu=None elif p%4==3: retu=pow(N,(p+1)//4,p) else: for nonresidue in range(1,p): if pow(nonresidue,p>>1,p)==p-1: break pp=p-1 cnt=0 while pp%2==0: pp//=2 cnt+=1 s=pow(N,pp,p) retu=pow(N,(pp+1)//2,p) for i in range(cnt-2,-1,-1): if pow(s,1<<i,p)==p-1: s*=pow(nonresidue,p>>1+i,p) s%=p retu*=pow(nonresidue,p>>2+i,p) retu%=p return retu P,N=map(int,input().split()) if Tonelli_Shanks(N,P)==None: ans=1 else: ans=0 print(ans)