結果
問題 | No.1409 Simple Math in yukicoder |
ユーザー |
![]() |
提出日時 | 2023-11-23 04:03:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 198 ms / 2,000 ms |
コード長 | 1,778 bytes |
コンパイル時間 | 388 ms |
コンパイル使用メモリ | 82,468 KB |
実行使用メモリ | 91,904 KB |
最終ジャッジ日時 | 2024-09-26 07:52:28 |
合計ジャッジ時間 | 34,514 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 58 |
ソースコード
import bisectimport copyimport decimalimport fractionsimport heapqimport itertoolsimport mathimport randomimport sysimport timefrom collections import Counter,deque,defaultdictfrom functools import lru_cache,reducefrom heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_maxdef _heappush_max(heap,item):heap.append(item)heapq._siftdown_max(heap, 0, len(heap)-1)def _heappushpop_max(heap, item):if heap and item < heap[0]:item, heap[0] = heap[0], itemheapq._siftup_max(heap, 0)return itemfrom math import gcd as GCDread=sys.stdin.readreadline=sys.stdin.readlinereadlines=sys.stdin.readlineswrite=sys.stdout.write#import pypyjit#pypyjit.set_param('max_unroll_recursion=-1')#sys.set_int_max_str_digits(10**9)def Primitive_Root(p):if p==2:return 1if p==167772161:return 3if p==469762049:return 3if p==754974721:return 11if p==998244353:return 3if p==10**9+7:return 5divisors=[2]pp=(p-1)//2while pp%2==0:pp//=2for d in range(3,pp+1,2):if d**2>pp:breakif pp%d==0:divisors.append(d)while pp%d==0:pp//=dif pp>1:divisors.append(pp)primitive_root=2while True:for d in divisors:if pow(primitive_root,(p-1)//d,p)==1:breakelse:return primitive_rootprimitive_root+=1T=int(readline())for t in range(T):v,x=map(int,readline().split())p=Primitive_Root(v*x+1)pow_p=pow(p,v,v*x+1)ans_lst=[1]for _ in range(1,x):ans_lst.append((ans_lst[-1]*pow_p-1)%(v*x+1)+1)ans_lst.sort()print(*ans_lst)