結果
問題 |
No.1409 Simple Math in yukicoder
|
ユーザー |
![]() |
提出日時 | 2021-02-26 22:23:25 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 753 bytes |
コンパイル時間 | 275 ms |
コンパイル使用メモリ | 82,604 KB |
実行使用メモリ | 84,200 KB |
最終ジャッジ日時 | 2024-10-02 15:11:51 |
合計ジャッジ時間 | 57,963 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 15 WA * 43 |
ソースコード
F=[1]*100003 L=[] for i in range(2,100001): if F[i]^1: continue L.append(i) for j in range(i*2,i,100001): F[j]=0 def BG(X,Y,M): D=dict() D[1]=0 S=int(M**0.5)+1 Z=1 for i in range(1,S+1): Z=Z*X%M D[Z]=i if D.get(Y,-1)!=-1: if D[Y]: return D[Y] R=pow(Z,M-2,M) for i in range(1,S+1): Y=Y*R%M if D.get(Y,-1)!=-1: return D[Y]+i*S return -1 def solve(): V,X=map(int,input().split()) P=V*X+1 Y=0 for i in range(len(L)): x=BG(L[i],1,P) if x%X==0: Y=pow(L[i],x//X,P) break A=[1] for i in range(X-1): A.append(A[i]*Y%P) A.sort() for k in range(1,X+1): Z=0 for i in range(X): Z+=pow(A[i],k,P) print(*A) for i in range(int(input())): solve()