Cod sursa(job #2711414)

Utilizator Casian_doispeChiriac Casian Casian_doispe Data 24 februarie 2021 07:27:12
Problema Invers modular Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <deque>
#include <vector>
#include <bitset>
#include <queue>
#include <unordered_map>
#include <algorithm>
#include <cmath>

///#define MOD 1000000007

using namespace std ;

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

long long MOD ;

long long fme(long long a, int n)
{

    if(n == 0)return 1 ;
    if(n == 1)return a ;
    if(n == 2)return a * a % MOD ;

    if(n % 2 == 0)return fme(fme(a, n / 2) % MOD, 2) % MOD ;

    return a * fme(a, n - 1) % MOD ;

}

long long im(long long a)
{

    return fme(a, MOD - 2) ;

}

int main()
{

    long long a, b ;

    cin >> a >> b ;

    MOD = b ;

    cout << im(a) << " " ;

    return 0 ;
}