Cod sursa(job #3205761)

Utilizator AlexandruDrg23Draghici Alexandru AlexandruDrg23 Data 20 februarie 2024 14:08:51
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int pu(int a,int p,int mo)
{
    a=a%mo;
    if(a==0)
        return 0;
    long long pro=1;
    while(p>0)
    {
        if(p%2==1)
        {
            pro=pro*a;
            p--;
            pro=pro%mo;
        }
        else
        {
            pro=pro*pro;
            p/=2;
            pro=pro%mo;
        }
    }
    return pro;
}

int invers(int a,int modulo)
{
    return pu(a,modulo-2,modulo);
}

int main()
{
    int a,n;
    fin>>a>>n;
    fout<<invers(a,n);
    return 0;
}