Cod sursa(job #1157116)
| Utilizator | Data | 28 martie 2014 11:39:35 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
long long a, b, m, p;
long long putere(long long a, long long b){
long long rez;
if (b == 1)
return a % p;
if (b == 2)
return a * a % p;
if (b % 2 == 1)
return a * putere(a, b - 1) % p;
else {
rez = putere(a, b / 2) % p;
return rez * rez % p;
}
}
int main(){
fin >> a >> b; p = b;
m = putere(a, b - 2);
fout << m % p;
}
