Cod sursa(job #2562980)

Utilizator RedPipperNastasa Stefan-Alexandru RedPipper Data 29 februarie 2020 20:54:18
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("invermodular.in");
ofstream fout("invermodular.out");

long long a,n;

long long raisePower(long long nr, long long p)
{
    long long sol=1;
    for(int i=0;(1<<i)<=p;++i)
    {
        if(((1<<i) & p)>0)
            sol=(sol*nr);

        nr=(nr*nr);
    }
    return sol;
}

int main()
{
    fin>>a>>n;

    int phi=0;
    for(int i=1;i<=ceil(sqrt(n));++i)
    {
        if(n%i || i==1)
            ++phi;

        if(n%(n-i) && (n-i)!=i)
            ++phi;

    }

    fout<<raisePower(a,phi-1)%n;

    return 0;
}