许诺 • 2天前
#include <iostream>
#include <vector>
using namespace std;
long long fast_pow(long long base, long long exp, long long mod) {
long long result = 1;
while (exp > 0) {
if (exp % 2 == 1) {
result = (result * base) % mod;
}
base = (base * base) % mod;
exp = exp / 2;
}
return result;
}
int main() {
int n, p;
cin >> n >> p;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
for (int i = 0; i < n; ++i) {
int num = a[i];
if (num % p == 0) {
cout << 0 << " ";
} else {
long long inv = fast_pow(num, p - 2, p);
cout << inv << " ";
}
}
cout << endl;
return 0;
}
评论:
请先登录,才能进行评论