Rose的数论题
Rose的数论题
题意:给定模数P=\(n个不同质因数p_i\)的乘积,给出pi,对于给定的m,输出\(\sum_{x=0}^{P-1} [x^m=x \pmod P]\),\(n \le 1e5,p_i,m \le 1e18\)
先考虑\(n=1\):
rose告诉我可以打表,然后打了半天啥也没看出来,理性分析一下发现不难,可能打表水平是真的低(xld表示难以置信)
需要掌握模意义的阶、原根相关知识;为了下文方便,忽略x=0的情况即当做是\(x^{m-1}=1 \pmod P\),最后+1即可
即原根为g,\(将x表示为g^i\),\(对于j \in [0,p-2],ans_{j+1}=\sum_{i=0}^{p-2} [g^{ij}=1]\)
考虑到\(阶(g)=p-1\),\(阶(g^j)=最快多少步能到p-1=lcm(j,p-1)/j\)
根据阶的性质,\(阶(g^j)|i\),即\(ans_{j+1}=\frac{p-1}{阶(g^j)}=gcd(j,p-1)\),因此可能可以打表发现
那么对于\(n>1\):也不难啊,居然没想到qwq……
还是先不考虑x=0,还是写成\(x^{m-1}=x \pmod P\),变形一下,\(x^{m-1}-1=0 \pmod P\)
显然有\(\forall i,(x^m-1) \%p_i=0\)这个必要条件,而根据中国剩余定理这是充分的
在每个子问题中可行的解(不含0)中选一个,构成n条同余方程,中国剩余定理告诉我们在模P意义下恰一个解,且非0
因此最后答案为,\(1+\prod_{i=1}^n gcd(m-1,p_i-1)\)
rose从zjt处得知,借助抽象代数知识,可以做质因子次幂不为1的情况

浙公网安备 33010602011771号