Pagini recente » Cod sursa (job #1105941) | Cod sursa (job #1283949) | Cod sursa (job #2425506) | Cod sursa (job #260150) | Cod sursa (job #1051924)
#include <cstdio>
int rest;
int lp( int a, int n ) {
if( n == 0 )
return 1;
if( a == 0 )
return 0;
if( n % 2 == 0 )
return lp( ( (long long)a * a) % rest, n / 2 );
return ( (long long)a * lp( a, n - 1 ) ) % rest;
}
int main () {
FILE *f, *g;
f = fopen( "inversmodular.in", "r" );
g = fopen( "inversmodular.out", "w" );
int a, n;
fscanf( f, "%d%d", &a, &n );
rest = n;
fprintf( g, "%d\n", lp( a, n - 2 ) );
fclose( f );
fclose( g );
return 0;
}