Cod sursa(job #1176494)
Utilizator | Iov Luca iov.luca | Data | 26 aprilie 2014 10:07:37 |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <cstdio>
using namespace std;
int n;
long long putere (long long x,int p)
{
if (p==0) return 1;
if (p==1) return x%n;
if (p%2==0) return (putere ((x*x)%n , p/2))%n;
else return (x%n)*(putere ((x*x)%n ,(p-1)/2))%n;
}
int main()
{
FILE *f,*g;
f=fopen("inversmodular.in","r");
g=fopen("inversmodular.out","w");
int x,p;
fscanf(f,"%lld%d",&x,&n);
p=n;
fprintf(g,"%lld",(putere(x,p-2)));
return 0;
}