Cod sursa(job #3346404)

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

int main()
{
    ifstream fin("inversmodular.in");
    ofstream fout("inversmodular.out");
    long long x, n, pr, im, i, p;
    fin>>x>>n;
    i=2;
    im=1;
    pr=n;
    while(i*i<=n){
        while(n%i==0){
            n/=i;
            pr*=i-1;
            im*=i;
            if(pr%im==0){
                pr/=im;
            }
        }
        i++;
       // cout<<i<<' ';
    }
    pr-=2;
    //cout<<pr-2<<' ';
    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;
}