Cod sursa(job #1930430)
Utilizator | Modan Valentin vlcmodan | Data | 18 martie 2017 21:11:07 |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include<stdio.h>
#define ull unsigned long long
ull a, n;
ull power(ull a, ull x)
{
if (x == 0)
return 1;
if (x == 1)
return a;
ull aux = power(a, x / 2);
if (x % 2 == 0)
{
return (aux*aux) % n;
}
else
{
return (((aux*a) % n)*aux) % n;
}
}
int main()
{
freopen("inversmodular.in", "r", stdin);
freopen("inversmodular.out", "w", stdout);
scanf("%d %d", &a, &n);
printf("%llu", power(a, n - 2));
}