Pagini recente » Cod sursa (job #1554964) | Cod sursa (job #2007740) | Istoria paginii runda/testare_chiur/clasament | Istoria paginii runda/crcs_78/clasament | Cod sursa (job #756087)
Cod sursa(job #756087)
#include <cstdio>
using namespace std;
long long mod;
void inversModular (long long a, long long n, long long &x, long long &y) {
long long c, xx, yy;
if (a == 0) {
x = 0; y = 1;
return;
}
inversModular (n % a, a, xx, yy);
y = xx % mod;
x = (yy - xx * (n / a)) % mod;
if (y < 0) {
y += mod;
}
if (x < 0) {
x += mod;
}
}
int main () {
long long a, n, x, y;
freopen ("inversmodular.in", "rt", stdin);
freopen ("inversmodular.out", "wt", stdout);
scanf ("%lld%lld", &a, &n);
mod = n;
inversModular (a % n, n, x, y);
printf ("%d\n", x);
return 0;
}