Cod sursa(job #724301)
Utilizator | Data | 26 martie 2012 13:29:27 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <fstream>
using namespace std;
ifstream in("inversmodular.in");
ofstream out("inversmodular.out");
long long n;
long long pow(long long num, long long exp) {
if (exp == 1)
return num%n;
if (exp%2)
return (pow( (num*num)%n , exp/2) * num) % n;
return pow((num*num)%n, exp/2)%n;
}
int main()
{
long long a;
in >> a >> n;
out << pow(a, n-2) << "\n";
return 0;
}