Cod sursa(job #1914690)

Utilizator LolkekzorChiorean Tudor Lolkekzor Data 8 martie 2017 18:07:06
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");

long long int n, p;

long long int logPow( long long int bz , long long int put ) {
    long long int aux = 1;
    while ( put > 1 ) {
        if ( put % 2 == 0 ) {
            bz *= bz;
            bz %= p;
            put /= 2;
        } else {
            aux *= bz;
            aux %= p;
            put--;
        }
    }

    return ( aux * bz ) % p;
}

int main()
{
    fin >> n >> p;
    fout << logPow( n , p - 2 );

    return 0;
}