Cod sursa(job #3346410)

Utilizator Vicentiu123Savu Vicentiu Dorian Vicentiu123 Data 13 martie 2026 15:54:02
Problema Invers modular Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream fin("inversmodular.in");
    ofstream fout("inversmodular.out");
    long long x, n, pr, i, p;
    fin>>x>>n;
    i=2;
    pr=n;
    while(i*i<=n){
        if(n%i==0){
            pr/=i;
            pr*=(i-1);
            while(n%i==0){
                n/=i;
            }
        }
        i++;
    }
    if(n!=1){
        pr/=n;
        pr*=(n-1);
    }
    pr--;
    p=1;
    while(pr>0){
        if(pr%2==1){
            p*=x;
            p%=n;
        }
        x*=x;
        x%=n;
        pr/=2;
    }
    fout<<p%n<<'\n';
    return 0;
}