作者:夜沙 | 来源:互联网 | 2023-01-31 21:54
/*
给定A,B,C,C是质数,求出A^x=B(mod C)的解
解:A^x = A^(x % phi[C]) = B(mod C) (欧拉定理推论)
x % phi[C] 所以不超过C的范围内必有一个解,
只要求到C即可,
进行分块,另 m=sqrt(C),向上取整,
那么 x=i*m-j
原式==》A^j*B = A^(m*i)(mod C)
先枚举j,将A^j*B进行hash
再枚举i,从hash表中找到第一个满足条件的A^j*B
此时x=i*m-j
*/
#include
#include
#include
#include
#include