Cod sursa(job #2171977)
Utilizator | Data | 15 martie 2018 14:24:41 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <fstream>
using namespace std;
ifstream fin ("inversmodular.in");
ofstream fout ("inversmodular.out");
long long a,n;
long long Pow(long long a,long long b);
int main() {
int x;
fin >> x >> n;
fout << Pow(x,n - 2);
}
long long Pow(long long a, long long b) {
if ( b == 0) return 1;
long long p = Pow(a,b/2);
long long rez = (p * p) % n;
if ( b & 1) rez = (rez * a) % n;
return rez;
}