結果
| 問題 | No.1409 Simple Math in yukicoder | 
| コンテスト | |
| ユーザー |  tamato | 
| 提出日時 | 2021-02-26 23:42:55 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 175 ms / 2,000 ms | 
| コード長 | 911 bytes | 
| コンパイル時間 | 131 ms | 
| コンパイル使用メモリ | 82,480 KB | 
| 実行使用メモリ | 77,952 KB | 
| 最終ジャッジ日時 | 2024-10-02 16:32:01 | 
| 合計ジャッジ時間 | 29,998 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 58 | 
ソースコード
mod = 1000000007
eps = 10**-9
def main():
    import sys
    input = sys.stdin.buffer.readline
    from random import randint
    def primitive_root(P):
        if P == 2:
            return 1
        div = []
        for d in range(2, P+1):
            if d*d > P-1:
                break
            if (P-1) % d == 0:
                div.append(d)
                div.append((P-1) // d)
        while True:
            k = randint(2, P-1)
            ok = 1
            for d in div:
                if pow(k, d, P) == 1:
                    ok = 0
                    break
            if ok:
                return k
    for _ in range(int(input())):
        v, x = map(int, input().split())
        p = v*x+1
        r = primitive_root(p)
        ans = []
        for i in range(x):
            ans.append(pow(r, i*v, p))
        ans.sort()
        print(*ans)
if __name__ == '__main__':
    main()
            
            
            
        