Cod sursa(job #3346773)

Utilizator andreiPaladeAndrei Razvan Palade andreiPalade Data 15 martie 2026 11:37:57
Problema Invers modular Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int a, n, nr=0;

int pow(int x, int n){
    int rez=1, left=x;
    while(n>0){
        if(n%2==1){
            rez=left*rez;
            n--;
        }
        n=n/2;
        left=left*left;
    }
    return rez;
}

int cmmdc(int x, int y){
    while(y!=0 and x!=0){
        int r=x%y;
        x=y;
        y=r;
    }
    return x;
}

int main()
{
    fin>>a>>n;
    for(int i=1;i<n;i++)
        if(cmmdc(i, n)==1) nr++;
    fout<<pow(a, nr-1)%n;
    return 0;
}