Cod sursa(job #1176452)
| Utilizator | Data | 26 aprilie 2014 09:49:02 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include <cstdio>
using namespace std;
int a,n,m;
FILE *in=fopen ("inversmodular.in","r");
FILE *out=fopen ("inversmodular.out","w");
long long power (int a, int n)
{
if (n==0) return 1;
if (n==1) return a%m;
if (n%2==0) return power (a*a,n/2)%m;
return (a*power (a*a,(n-1)/2))%m;
}
int main()
{
fscanf (in,"%d%d",&a,&n);
m=n;
fprintf(out,"%lld",power (a,n-2));
return 0;
}
