Cod sursa(job #2496520)
Utilizator | Data | 20 noiembrie 2019 22:58:17 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
#define f in
#define g out
using namespace std;
ifstream in ( "inversmodular.in" );
ofstream out( "inversmodular.out" );
int a, n;
long long putere ( int b, int p ){
if ( p == 0 )
return 1;
long long r = putere( b, p/2 );
if ( p%2 ) return r * r % n * b % n;
return r * r % n;
}
long long getinvers ( int a, int n ){
return putere ( a, n-2 );
}
int main() {
f>>a>>n;
g<<getinvers ( a, n );
return 0;
}