题意:给出k,m,newx的值,求方程x^k(mod m)=newx的解,其中m为素数。
解法步骤:
(1)先暴力求m的原根g
(2)大步小步求g^t1(mod m)=newx
(3)则g^(t1+n*t2)(mod m)=newx,t2=m-1
(4)x=g^y(mod m),x^k=(g^y)^k=g^(yk)=g^(t1+n*t2)
那么就是求同于方程yk=t1(mod t2),求出y之后带入x=g^y(mod m)解出x
#include #include #include #include #include #include