Cod sursa(job #2171056)

Utilizator LittleWhoFeraru Mihail LittleWho Data 15 martie 2018 11:05:52
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <utility>
#include <vector>
#include <queue>
#include <stack>


typedef long long int lli;
lli MODULO;

using namespace std;

lli my_pow(lli b, lli p)
{
    if (p == 0) return 1;
    if (p == 1) return b;

    if (p % 2 == 0) return my_pow(b * b % MODULO, p / 2) % MODULO;
    return (b * my_pow(b * b % MODULO, (p - 1) / 2)) % MODULO;
}

int main()
{
    lli b, p;

    ifstream in("inversmodular.in");
    ofstream out("inversmodular.out");

    in >> b >> p;
    MODULO = p;
    out << my_pow(b, p - 2) << "\n";
    return 0;
}