Cod sursa(job #228353)
| Utilizator | Data | 6 decembrie 2008 23:41:04 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <stdio.h>
#define ll long long
int A, N,x,mod;
ll putere(ll a, ll b)
{
if (b==1) return a;
else
if (b%2==0)
{
x=putere(a,b/2);
return ((x%mod)*(x%mod))%mod;
}
else
{
x=putere(a,b/2);
return ((((x%mod)*(x%mod))%mod)*a)%mod;
}
}
int main()
{
freopen("inversmodula.in", "r", stdin);
freopen("inversmodular.out", "w", stdout);
scanf("%d %d", &A, &N);
mod=N;
printf("%lld\n", putere(A,N-2)%mod);
return 0;
}
