Cod sursa(job #2775183)

Utilizator GligarEsterabadeyan Hadi Gligar Data 14 septembrie 2021 19:49:07
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

using namespace std;

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

int main(){
    int a,n;
    fin>>a>>n;
    int p=1,d;
    for(d=2;d<n*n;d++){
        if(n%d==0){
            p=p*d;
            p=p*(n/d);
        }
    }
    if(d*d==n){
        p=p*d;
    }
    int x=1,a2=a;
    for(int i=1;i<=p-1;i*=2){
        if((i&a)!=0){
            x=x*a2%n;
        }
        a2=a2*a2%n;
    }
    fout<<x<<"\n";
    return 0;
}