結果
問題 |
No.1409 Simple Math in yukicoder
|
ユーザー |
![]() |
提出日時 | 2021-02-27 15:03:08 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 157 ms / 2,000 ms |
コード長 | 570 bytes |
コンパイル時間 | 340 ms |
コンパイル使用メモリ | 81,956 KB |
実行使用メモリ | 76,988 KB |
最終ジャッジ日時 | 2024-10-02 17:30:21 |
合計ジャッジ時間 | 31,882 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 58 |
ソースコード
def p(m): if m == 2: return 1 D = [2] x = (m-1)//2 while x%2 == 0: x //= 2 i = 3 while i*i <= x: if not x%i: D.append(i) while not x%i: x //= i i += 2 if x > 1: D.append(x) g = 2 while True: if all(pow(g, (m-1)//d, m) != 1 for d in D): return g g += 1 for _ in range(int(input())): v, x = map(int, input().split()) q = v*x+1 h = pow(p(q), v, q) print(*sorted([pow(h, i, q) for i in range(x)]))