2025-08-30 18:35:01 +08:00
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
using namespace std;
|
|
|
|
|
#define int long long
|
|
|
|
|
int a, p;
|
|
|
|
|
|
|
|
|
|
// 快速幂
|
|
|
|
|
int qmi(int a, int b, int p) {
|
|
|
|
|
int res = 1;
|
|
|
|
|
while (b) {
|
|
|
|
|
if (b & 1)
|
|
|
|
|
res = res * a % p;
|
|
|
|
|
b >>= 1;
|
|
|
|
|
a = a * a % p;
|
|
|
|
|
}
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void solve() {
|
|
|
|
|
int a, p;
|
|
|
|
|
cin >> a >> p;
|
|
|
|
|
int phi = p - 1;
|
2025-09-21 14:27:06 +08:00
|
|
|
for (int k = 2; k * k <= phi; k++) {
|
|
|
|
|
if (phi % k == 0) {
|
|
|
|
|
if (qmi(a, k, p) == 1 || qmi(a, phi / k, p) == 1) {
|
2025-08-30 18:35:01 +08:00
|
|
|
puts("No");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
puts("Yes");
|
|
|
|
|
}
|
|
|
|
|
signed main() {
|
|
|
|
|
int T;
|
|
|
|
|
cin >> T;
|
|
|
|
|
while (T--)
|
|
|
|
|
solve();
|
|
|
|
|
}
|