Cod sursa(job #1348332)

Utilizator mihai_ilasMihai Ilas mihai_ilas Data 19 februarie 2015 17:19:53
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 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;
}