Cod sursa(job #1919212)

Utilizator vladdy47Bucur Vlad Andrei vladdy47 Data 9 martie 2017 18:20:40
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
# include <bits/stdc++.h>

using namespace std;

int a, MOD;

int lgput(int x, int put)
{
    if (put < 0) return lgput(1 / x, put) % MOD;
    else if (put == 0) return 1 % MOD;
    else if (put == 1) return x % MOD;
    else if (!(put % 2)) return lgput( (x * x) % MOD, put / 2 ) % MOD;
    else if (put % 2) return x * lgput( (x * x) % MOD, (put - 1) / 2) % MOD;
}

int main ()
{
    freopen("inversmodular.in", "r", stdin);
    freopen("inversmodular.out", "w", stdout);

    scanf("%d %d\n", &a, &MOD);

    printf("%d\n", lgput(a, MOD - 2) % MOD);

    return 0;
}