转载自 miskcoo
是这样的,这几天在写NTT,由于是在模意义下的,需要各种素数……
然后就打了个表方便以后查了
如果$r(2k+1)$是个素数,那么在$\mod r(2k+1)$意义下,可以处理$2k$以内规模的数据,
$2281701377=17\times 227+1$是一个挺好的数,平方刚好不会爆 long long
$1004535809=479\times 221+1$加起来刚好不会爆 int 也不错
还有就是UOJ常用的$998244353=119\times 223+1$
打表方法:对于每个$k$,找到最小r满足$r(2k+1)$是素数(g是$\mod r(2k+1)$的原根)

$r(2k+1)$$r$$k$$g$
3112
5122
17143
97355
193365
257183
768115917
1228931211
409615133
655371163
78643331810
576716911193
73400337203
2306867311213
10485760125223
1677721615253
4697620497263
998244353119233
1004535809479213
2013265921152731
228170137717273
32212254733305
7516192768135313
773094113299337
20615843020933622
206158430208115377
27487790694415393
65970697666573415
395824185999379425
791648371998739435
26388279066624115447
123145302310912135453
133700613937561719463
379991218559385727475
4222124650659841154819
78812993478983697506
315251973915934737523
1801439850948198415556
194555503902405427327565
417934045419982028929573