У меня проблема с разделением по модулю, я не знаю, почему заданы неправильные параметры
Ошибка C2660: inverse_modulo не принимает 2 аргумента C ++
Ошибка C2660: мод непринять 2 аргумента C ++
int inverse_modulo(int a, int p, int is, int ij)
{
a = mod(is - ij, p);
//a = a % p;
for (int x = 1; x < p; x++)
if ((a * x) %p == 1)
return x;
}
int mod(int is, int ij, int p) {
long x = 1, y = ij;
while (ij > 0) {
if (ij % 2 == 1) {
x = (x * y) % p;
}
y = (y * y) % p;
ij /= 2;
}
return x % p;
}
int getSecret(std::vector<int> ids, std::vector<int> ms, int p) {
start = clock();
auto sum = 0;
auto i = 0;
for (auto is : ids) {
auto prod = ms[i];
for (auto ij : ids) {
if (is == ij)
continue;
prod *= mod(is, -ij, p);
prod *= inverse_modulo(mod(is - ij, p), p);
}
sum += prod;
i++;
}
auto M = mod(sum, p);
return M;
}```