Cod sursa(job #1348347)

Utilizator mihai_ilasMihai Ilas mihai_ilas Data 19 februarie 2015 17:31:54
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int main()
{
    int N,A,f,i,r,n;
    long long p;
    fin>>A;
    fin>>N;
    n=N;
    f=0;
    p=1;
    i=2;
    f=N;
    while(i*i<=N)
    {
        if(N%i==0)
        {
            f=f/i*(i-1);
            while(N%i==0);
            {
                N=N/i;
            }
        }
        i++;
    }
    if(N!=1) f=f/N*(N-1);

    f=f-1;
    while(f!=0)
    {
        if(f%2!=0)
        {
            p=(p*A)%n;
        }
        A=(A*A)%n;
        f=f/2;
    }

    fout<<p;
    return 0;
}