Cod sursa(job #2184095)
Utilizator | Data | 23 martie 2018 18:34:20 | |
---|---|---|---|
Problema | Invers modular | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int a, n;
int lgput( int x, int y ) {
int sol= 1;
for ( ; y>0; y/= 2 ) {
if ( y%2==1 ) {
sol= (sol*x)%n;
}
x= (x*x)%n;
}
return sol;
}
int main( ) {
fin>>a>>n;
fout<<lgput(a, n-2)<<"\n";
return 0;
}