Pagini recente » Cod sursa (job #811004) | Cod sursa (job #3170627) | Cod sursa (job #2419458) | Istoria paginii runda/47/clasament | Cod sursa (job #1509104)
#include <cstdio>
using namespace std;
FILE *f = fopen ( "inversmodular.in" , "r" ) , *g = fopen ( "inversmodular.out" , "w" );
long long A , N;
long long toPower ( long long x , long long exp )
{
long long result = 1;
while ( exp )
{
if ( exp % 2 == 1 )
{
exp --;
result = ( result * x ) % N;
}
x = ( x * x ) % N;
exp /= 2;
}
return result;
}
int main()
{
//read
fscanf ( f , "%lld %lld" , &A , &N );
//compute A ^ ( N - 2 )
fprintf ( g , "%lld\n" , toPower ( A , N - 2 ) );
return 0;
}