Cod sursa(job #1676297)

Utilizator GinguIonutGinguIonut GinguIonut Data 5 aprilie 2016 20:13:34
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <string.h>
#include <vector>
#include <queue>
#include <limits.h>

#define nMax 100001
#define lgMax 19
#define pb push_back
#define INF INT_MAX
#define bit(i) i&(-i)
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int n, MOD;

long long lg_power(int nr, int exp)
{
    if(exp==0)
        return 1;

    if(exp%2==0)
    {
        long long half=lg_power(nr, exp/2);
        return (half*half)%MOD;
    }

    if(exp%2==1)
        return (nr*lg_power(nr, exp-1))%MOD;
}
int main()
{
    fin>>n>>MOD;
    fout<<lg_power(n, MOD-2);
    return 0;
}