Cod sursa(job #2756054)

Utilizator AndreiKatsukiAndrei Dogarel AndreiKatsuki Data 29 mai 2021 12:18:07
Problema Invers modular Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("inversmodular.in");
ofstream g("inversmodular.out");

int phi(int n){
    int res=n;
    for(int i=2;i*i<=n;++i){
        if(n%i==0){
            res*=(i-1);
            res/=i;
            while(n%i==0){
                n/=i;
            }
        }
    }
    if(n>1){
        res*=(n-1);
        res/=n;
    }
    return res;
}

int put(int a, int n){
    int p=1;
    while(n){
        if(n%2){
            p=p*a;
        }
        a=a*a;
        n/=2;
    }
    return p;
}

int a, n;

int main(){
    f >> a >> n;
    g << put(a, phi(n)-1)%n;
    return 0;
}