Cod sursa(job #731090)
Utilizator | Data | 7 aprilie 2012 14:36:20 | |
---|---|---|---|
Problema | Invers modular | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
FILE *e = fopen ("inversmodular.in", "r");
FILE *f = fopen ("inversmodular.out", "w");
int A, MOD, X;
int exp (int a, int e)
{
long long x = 1;
while (e != 0)
{
if (e & 1)
x = x * a % MOD;
a = a * a % MOD;
e >>= 1;
}
return x;
}
int main ()
{
fscanf (e, "%d%d", &A, &MOD);
X = exp (A, MOD - 2);
fprintf (f, "%d\n", X);
return 0;
}