intphi(int x) { int res = x; // 我们只取较小质因子 for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) { res = res / i * (i - 1); while (x % i == 0) x /= i; } // 检查是否包含大于根号x的质因子并带入公式 if (x > 1) res = res / x * (x - 1);
// a ^ k % p longlongqmi(int a, int k, int p) { longlong ret = 1; // 二进制优化k, 判断最后一位是否是1; while(k) { // 判断最后一位是否是1 if(k & 1) ret = (longlong)ret * a % p; k >>= 1; // 指数乘以2 a = (longlong)a * a % p;; } return ret; }
intmain() { int n; cin >> n; while(n--) { int a, k, p; cin >> a >> k >> p; cout << qmi(a,k,p) << endl; } return0; }
intqmi(int a, int k, int p) { int ret = 1; while(k) { if(k & 1) ret = (longlong)ret * a % p; k >>= 1; a = (longlong) a * a % p; } return ret; }
intmain() { int t; cin >> t; while(t--) { int a, p; cin >> a >> p; int t = qmi(a, p - 2, p); if(a % p != 0) cout << t << endl; else cout << "impossible" << endl; } return0; }