#include #include using namespace std; //求方幂模,求解res,计算res=g^x mod p int ModularExponent(int g, int x, int p) {//计算g^x mod p int res = 1; for (int i = 0; i < x; i++) { res = res*g%p; } return res; } //计算离散对数,求x,条件:a=g^x mod p int dlog(int a, int g, int p) {//a为余数,g为底数,模p int x = 1, y = 1; y = y*g%p; while (a!=y&&x