Cod sursa(job #715911)
Utilizator | Data | 17 martie 2012 22:18:45 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include<fstream>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
long long A, n;
long long putere(long long nr)
{
long long z;
if (nr==0) return 1;
if (nr==1) return A%n;
if (nr%2) return (A*putere(nr-1))%n;
if (!(nr%2))
{
z=putere(nr/2)%n;
return (z*z)%n;
}
}
int main()
{
f>>A>>n;
g<<putere(n-2)<<"\n";
f.close();
g.close();
return 0;
}